You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 02-Use_the_Tools_Available.md
+20-9Lines changed: 20 additions & 9 deletions
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,7 @@ Source control is an absolute necessity for any software development project. If
16
16
17
17
Use an industry standard widely accepted build tool. This prevents you from reinventing the wheel whenever you discover / link to a new library / package your product / etc. Examples include:
18
18
19
+
*[Autotools](https://autotools.io) - The traditional GNU build system.
19
20
*[CMake](http://www.cmake.org/)
20
21
* Consider: https://github.com/sakra/cotire/ for build performance
21
22
* Consider: https://github.com/toeb/cmakepp for enhanced usability
@@ -25,9 +26,9 @@ Use an industry standard widely accepted build tool. This prevents you from rein
25
26
*`cmake --build` provides a common interface for compiling your project regardless of platform
26
27
*[Waf](https://waf.io/)
27
28
*[FASTBuild](http://www.fastbuild.org/)
28
-
*[Ninja](https://ninja-build.org/) - can greatly improve the incremental build time of your larger projects. Can be used as a target for CMake.
29
-
*[Bazel](http://bazel.io/) - Fast incremental builds using network artefact caching and remote execution
30
-
*[Buck](http://buckbuild.com/) - Similar to Bazel, with very good support for iOS and Andoid
29
+
*[Ninja](https://ninja-build.org/) - Can greatly improve the incremental build time of your larger projects. Can be used as a target for CMake.
30
+
*[Bazel](http://bazel.io/) - Fast incremental builds using network artefact caching and remote execution.
31
+
*[Buck](http://buckbuild.com/) - Similar to Bazel, with very good support for iOS and Andoid.
31
32
*[gyp](https://chromium.googlesource.com/external/gyp/) - Google's build tool for chromium.
32
33
*[maiken](https://github.com/Dekken/maiken) - Crossplatform build tool with Maven-esque configuration style.
33
34
*[Qt Build Suite](http://doc.qt.io/qbs/) - Crossplatform build tool From Qt.
@@ -275,13 +276,23 @@ A coverage analysis tool shall be run when tests are executed to make sure the e
275
276
*[OpenCppCoverage](https://github.com/OpenCppCoverage/OpenCppCoverage) - open source coverage reporting tool for Windows.
276
277
277
278
278
-
### Valgrind
279
+
### Heap profiling
279
280
280
-
[Valgrind](http://www.valgrind.org/) is a runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. It is supported on various Unix platforms.
281
+
*[Valgrind](http://www.valgrind.org/)
282
+
* Valgrind is a runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. It is supported on various Unix platforms.
283
+
*[Heaptrack](https://github.com/KDE/heaptrack)
284
+
* A profiler created by a Valgrind's Massif developper. Quite similar to Massif with pros and cons over it, way more intuitive though.
285
+
*[Dr Memory](http://www.drmemory.org)
286
+
*[Memoro](https://epfl-vlsc.github.io/memoro/) - A detailed heap profiler.
281
287
282
-
### Dr Memory
288
+
### CPU profiling
283
289
284
-
Similar to Valgrind. http://www.drmemory.org
290
+
*[Hotspot](https://github.com/KDAB/hotspot) - An intuitive front-end to visualize datas produced by the [perf](https://perf.wiki.kernel.org) CPU profiler.
291
+
*[uftrace](https://github.com/namhyung/uftrace) - Can be used to generating function call graphs of a program execution.
292
+
293
+
### Reverse engineering tools
294
+
295
+
*[Cutter](https://cutter.re/) - A front-end for [Radare2](https://www.radare.org/n/radare2.html). It provides tools such as decompiler, disassembly, graph visualizer, hex editor.
285
296
286
297
### GCC / Clang Sanitizers
287
298
@@ -351,9 +362,9 @@ Don't forget to make sure that your error handling is being tested and works pro
351
362
352
363
## Debugging
353
364
354
-
### uftrace
365
+
### GDB
355
366
356
-
[uftrace](https://github.com/namhyung/uftrace) can be used to generating function call graphs of a program execution
367
+
[GDB](https://www.gnu.org/software/gdb/) - The GNU debugger, powerful and widely used. Most IDEs implement an interface to use it.
0 commit comments