User:Callahanp: Difference between revisions

Jump to navigation Jump to search
What I'm really doing
mNo edit summary
(What I'm really doing)
Line 1: Line 1:
==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.
==Follow-on Questions==
* Does g++ support each of these sanitizers?
*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 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?
*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:=
I'm about to start going through the list above for myself. It may take a while.
I'm currently involved in a project with about half a million existing lines of C++ code and want to know what tools I need to work in this environment properly. The application has multi-threaded parts.
I can do basic g++, Debug, DebWithRelInfo, and Release builds using cmake or a pre-defined build script and step through code line-by-line with the gdb in VSCode, but want to become familiar with gdb at the command line.
I want to come up to speed with clang and lldb in vscode.
[[/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]]
I need to familiarize myself with other tools available, learn how to enable particular tools in a build, and learn how to use the tool's output.
I want to learn to use tools like UBSAN, ASAN, TSAN, and MSAN effectively and how to switch from g++ to clang when appropriate. I want to learn what tools other than the sanitizers and debuggers above are available.
There's no such thing as free beer! Someone pays for flightgear cloud infrastructure that I personallly benefit from.  So I contribute a little at:
There's no such thing as free beer! Someone pays for flightgear cloud infrastructure that I personallly benefit from.  So I contribute a little at:


Line 15: Line 49:
Goals (Maybe)
Goals (Maybe)


* Download Scenery from Current Scenery Developers
*Download Scenery from Current Scenery Developers
* Build Scripts for Scenery Land Class, Elevation, and OSM processing
*Build Scripts for Scenery Land Class, Elevation, and OSM processing
* Understand the underlying formats in Flightgear Scenery
*Understand the underlying formats in Flightgear Scenery
* Understand the processing of Scenery data between tiles in the build process and the running simulator
*Understand the processing of Scenery data between tiles in the build process and the running simulator
* Assist Scenery Developers with technical support.
*Assist Scenery Developers with technical support.
* full explanation of the advantages and disadvantages of the worktree approach.
*full explanation of the advantages and disadvantages of the worktree approach.


[[Hackathon Proposal: Property Subscription Improvements|Hackathon-2023-Proposal-Websocket-Property-Subscription-Improvements]]
[[Hackathon Proposal: Property Subscription Improvements|Hackathon-2023-Proposal-Websocket-Property-Subscription-Improvements]]
980

edits

Navigation menu