User:Callahanp: Difference between revisions

Jump to navigation Jump to search
no edit summary
m (formatting)
No edit summary
Line 4: Line 4:
*[[/cmake.org/getting-started/|https://cmake.org/getting-started/]] -- Build using g++ and clang.
*[[/cmake.org/getting-started/|https://cmake.org/getting-started/]] -- Build using g++ and clang.
*[[/learn.microsoft.com/en-us/vcpkg/|https://learn.microsoft.com/en-us/vcpkg/]] -- cross-platform C/C++ package manager
*[[/learn.microsoft.com/en-us/vcpkg/|https://learn.microsoft.com/en-us/vcpkg/]] -- cross-platform C/C++ package manager
*[[https://www.jenkins.io/ -- Automation Server
*[[/www.sourceware.org/gdb/|https://www.sourceware.org/gdb/]] or [[/lldb.llvm.org/|https://lldb.llvm.org/]] -- Debuggers
*[[/www.sourceware.org/gdb/|https://www.sourceware.org/gdb/]] or [[/lldb.llvm.org/|https://lldb.llvm.org/]] -- Debuggers
*[[/github.com/google/sanitizers|https://github.com/google/sanitizers]] -- Read about each of the available sanitizers
*[[/github.com/google/sanitizers|https://github.com/google/sanitizers]] -- Read about each of the available sanitizers
Line 9: Line 10:
*A review of all the options for each tool you want to acquire.
*A review of all the options for each tool you want to acquire.


== Reading Lists ==
=== Overviews ===
{| class="wikitable"
! Topic !! Overview  !! Options !! Progress !! Notes !!
|-
| vcpkg || https://learn.microsoft.com/en-us/vcpkg/  ||
|-
| apt || https://wiki.debian.org/Apt ||
|-
| cmake || https://cmake.org/getting-started/ ||
|-
| g++ || https://www.gnu.org/software/gcc/ ||
|-
| gdb || https://www.sourceware.org/gdb/ ||
|-
| llvm || llvm.org ||
|-
| clang || https://clang.llvm.org/ ||
|-
| lldb || https://lldb.llvm.org/ ||
|-
| valgrind || https://valgrind.org/ ||
|-
| lcov || https://github.com/linux-test-project/lcov || -DENABLE_COVERAGE=1
if (ENABLE_COVERAGE)
  set(CMAKE_BUILD_TYPE "Debug" CACHE STRING
    "set the build type." FORCE)
  include(CodeCoverage.cmake)
  append_coverage_compiler_flags()
endif()
add_executable
target_link_libraries( a.exe  test_a.cpp CPPUnit::CPPUnit
if (ENABLE_COVERAGE)
  setup_target_for_coverage_lcov(
      NAME coverage
      EXECUTABLE ${cmake_current_binarey_dir}/test_a
      LCOV_ARGS --rc lcov_branch_coverage=1
      GENHTML_ARGS --legend --branch-coveragbe
      DEPENDENCIES test_a)
|-
| sanitizers || https://github.com/google/sanitizers
https://www.cl.cam.ac.uk/~nk480/C1819/lecture5.pdf
|
|-
| asan || https://github.com/google/sanitizers/wiki/AddressSanitizer ||gdb & clang:
CMAKE_CXX_FLAGS -fsanitize=address
CMAKE_EXE_LINKER_FLAGS -fsanitize=address
|-
| msan || https://github.com/google/sanitizers/wiki/MemorySanitizer ||
|-
| tsan || https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual ||
|-
| ubsan || https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html || gdb & clang:
CMAKE_CXX_FLAGS -fsanitize=undefined
CMAKE_EXE_LINKER_FLAGS -fsanitize=undefined
|}
==Start With==
*[[/cmake.org/getting-started/|https://cmake.org/getting-started/]] -- Build using g++ and clang.
*[[/learn.microsoft.com/en-us/vcpkg/|https://learn.microsoft.com/en-us/vcpkg/]] -- cross-platform C/C++ package manager
*[[/www.sourceware.org/gdb/|https://www.sourceware.org/gdb/]] or [[/lldb.llvm.org/|https://lldb.llvm.org/]] -- Debuggers
*[[/github.com/google/sanitizers|https://github.com/google/sanitizers]] -- Read about each of the available sanitizers
*[[/valgrind.org/docs/manual/quick-start.html|https://valgrind.org/docs/manual/quick-start.html]] -- A suite of debugging and profiling tools
*A review of all the options for each tool you want to acquire.
== Reading Lists ==
=== Overviews ===
{| class="wikitable"
! Topic !! Overview  !! Options !! Progress !! Notes !!
|-
| vcpkg || https://learn.microsoft.com/en-us/vcpkg/  ||
|-
| apt || https://wiki.debian.org/Apt ||
|-
| cmake || https://cmake.org/getting-started/ ||
|-
| g++ || https://www.gnu.org/software/gcc/ ||
|-
| gdb || https://www.sourceware.org/gdb/ ||
|-
| llvm || llvm.org ||
|-
| clang || https://clang.llvm.org/ ||
|-
| lldb || https://lldb.llvm.org/ ||
|-
| valgrind || https://valgrind.org/ ||
|-
| sanitizers || https://github.com/google/sanitizers
https://www.cl.cam.ac.uk/~nk480/C1819/lecture5.pdf
|
|-
| asan || https://github.com/google/sanitizers/wiki/AddressSanitizer ||
|-
| msan || https://github.com/google/sanitizers/wiki/MemorySanitizer ||
|-
| tsan || https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual ||
|-
| ubsan || https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html ||
|}
==Start With==
*[[/cmake.org/getting-started/|https://cmake.org/getting-started/]] -- Build using g++ and clang.
*[[/learn.microsoft.com/en-us/vcpkg/|https://learn.microsoft.com/en-us/vcpkg/]] -- cross-platform C/C++ package manager
*[[/www.sourceware.org/gdb/|https://www.sourceware.org/gdb/]] or [[/lldb.llvm.org/|https://lldb.llvm.org/]] -- Debuggers
*[[/github.com/google/sanitizers|https://github.com/google/sanitizers]] -- Read about each of the available sanitizers
*[[/valgrind.org/docs/manual/quick-start.html|https://valgrind.org/docs/manual/quick-start.html]] -- A suite of debugging and profiling tools
*A review of all the options for each tool you want to acquire.
== Reading Lists ==
=== Overviews ===
{| class="wikitable"
! Topic !! Overview  !! Options !! Progress !! Notes !!
|-
| vcpkg || https://learn.microsoft.com/en-us/vcpkg/  ||
|-
| apt || https://wiki.debian.org/Apt ||
|-
| cmake || https://cmake.org/getting-started/ ||
|-
| g++ || https://www.gnu.org/software/gcc/ ||
|-
| gdb || https://www.sourceware.org/gdb/ ||
|-
| llvm || llvm.org ||
|-
| clang || https://clang.llvm.org/ ||
|-
| lldb || https://lldb.llvm.org/ ||
|-
| valgrind || https://valgrind.org/ ||
|-
| sanitizers || https://github.com/google/sanitizers
https://www.cl.cam.ac.uk/~nk480/C1819/lecture5.pdf
|
|-
| asan || https://github.com/google/sanitizers/wiki/AddressSanitizer ||
|-
| msan || https://github.com/google/sanitizers/wiki/MemorySanitizer ||
|-
| tsan || https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual ||
|-
| ubsan || https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html ||
|}
=== Integration ===
{| class="wikitable"
! Topic !! Download_and_compile.sh !! dev1
|-
| vcpkg ||  ||
|-
| apt || ||
|-
| cmake || ||
|-
| g++ ||  ||
|-
| gdb || ||
|-
| llvm ||  ||
|-
| clang ||  ||
|-
| lldb ||  ||
|-
| valgrind ||  ||
|-
| sanitizers ||  ||
|-
| asan ||  ||
|-
| msan ||  ||
|-
| tsan || ||
|-
| ubsan || ||
|}


==Follow-on Questions==
==Follow-on Questions==


* Does g++ support each of these sanitizers?
* Does g++ support each of these sanitizers?
*What other tools should I research besides gdb, lldb, valgrind, UBSAN, ASAN, TSAN, and MSAN?
* What other tools should I research besides gdb, lldb, valgrind, UBSAN, ASAN, TSAN, and MSAN?
*Are there tools other than sanitizers and debuggers I should know about?
* Are there tools other than sanitizers and debuggers I should know about?
*Are there obsolete tools I should ignore?
* Are there obsolete tools I should ignore?
*Are there books that cover C++ topics beyond writing C++? How about how-to guides? (I'll be searching for these next, but do you happen to know any particularly useful and easy to read?
* Are there books that cover C++ topics beyond writing C++? How about how-to guides? (I'll be searching for these next, but do you happen to know any particularly useful and easy to read?
*In his reply, [[/www.reddit.com/user/Ujjawal-Gupta/|Ujjawal-Gupta]] mentions crash dumps and crash dump tools. I don't know much about them. What good resources on this topic are there for Linux, Windows, and Mac?
* In his reply, [[/www.reddit.com/user/Ujjawal-Gupta/|Ujjawal-Gupta]] mentions crash dumps and crash dump tools. I don't know much about them. What good resources on this topic are there for Linux, Windows, and Mac?
 
 
 


=## Background:=
== Background ==
I'm about to start going through the list above for myself. It may take a while.
I'm about to start going through the list above for myself. It may take a while.


Line 29: Line 229:


[[/stackoverflow.com/questions/63978029/setup-lldb-debugging-with-cpp-extension-in-vscode-linux|https://stackoverflow.com/questions/63978029/setup-lldb-debugging-with-cpp-extension-in-vscode-linux]]
[[/stackoverflow.com/questions/63978029/setup-lldb-debugging-with-cpp-extension-in-vscode-linux|https://stackoverflow.com/questions/63978029/setup-lldb-debugging-with-cpp-extension-in-vscode-linux]]
== Other Thoughts ==
== Other Thoughts ==


Line 38: Line 239:


<nowiki>https://liberapay.com/t3r</nowiki>
<nowiki>https://liberapay.com/t3r</nowiki>
 


Currently working on:
Currently working on:
980

edits

Navigation menu