Tools of the Trade
Jump to navigation
Jump to search
Misc tools (proprietary but freely available)
IDEs
- Microsoft Visual Studio Community [1] - the modern version of Microsoft's IDE. The Community edition is free.
- Visual Studio Code [2] - lightweight, cross-platform, open-source code editor with excellent C/C++ support via extensions.
Shader Development
- RenderDoc - modern, open-source GPU debugger that supports shader debugging (Vulkan, D3D11/12, OpenGL, OpenGL ES).
- Nsight Graphics (NVIDIA) - powerful GPU shader debugging and profiling tool.
- AMD Radeon GPU Profiler - AMD's modern replacement for RenderMonkey/FX Composer.
Debuggers & Profilers
- AMD uProf - AMD's modern performance profiler (replaces CodeAnalyst).
- Intel Advisor & Intel VTune Profiler - modern performance and threading profilers. Free tier available for students, open-source, and evaluation.
- ThreadSanitizer (TSan) - modern thread race and deadlock detector (part of LLVM/Clang).
OpenGL Debugging
- RenderDoc - OpenGL/OpenGL ES debugger (fully replaces GLIntercept/glslDevil).
- RenderDoc on GitHub - actively maintained, open source.
Free/Open Source
- GCC - GNU Compiler Collection - actively maintained.
- Clang/LLVM - modern, fast, open-source C/C++ compiler.
- Visual Studio Code - modern, lightweight, open source code editor.
- CMake - modern cross-platform build system (replaces autotools for many projects).
- Meson - fast, user-friendly build system.
- Ninja - small, fast build system focused on speed.
- GNU make - still widely used, but often invoked via CMake/Meson.
Speeding up compilations/rebuilds
- ccache - compiler cache for GCC/Clang/MSVC. Actively maintained.
- distcc - distributed compilation (still maintained).
- sccache - similar to ccache, with cloud storage support (modern alternative).
- icecream - modern distributed compilation system.
- Using tmpfs/ram drives for compilation speed (still relevant on HDDs; less critical on NVMe SSDs):
- LLD - LLVM's linker, significantly faster than GNU ld or Gold.
Documentation
- Doxygen - still actively maintained and widely used for source code documentation.
- MkDocs or Sphinx - modern alternatives for documentation generation.
Debugging
- GDB - still the standard console debugger.
- cgdb - modern curses-based GDB frontend (replaces DDD).
- rr - lightweight recording/debugging for Linux (modern replacement for many DDD use cases).
- Insiomnia (moved to SymBreak) - modern debugger for Linux from Microsoft.
Memory Usage
- Valgrind - still useful, though slower.
- AddressSanitizer (ASan) - modern, fast memory error detector (part of GCC/Clang).
- LeakSanitizer (LSan) - memory leak detector.
- Hotspot - modern GUI for performance/memory analysis.
Profiling
- perf - Linux's built-in profiler (replaces gprof).
- FlameGraphs - visualize perf data.
- libfaketime - time manipulation for testing.
- trace-viewer / Perfetto - modern tracing.
- speedscope - fast, interactive flamegraph viewer.
Source Code Management / Revision Control Systems
- git - modern standard for version control.
- Subversion (SVN) - for legacy projects.
- Mercurial - alternative distributed VCS.
| |||||||||||