cpplinks
gdb-dashboard
cpplinks | gdb-dashboard | |
---|---|---|
18 | 19 | |
5,071 | 11,878 | |
0.7% | 0.6% | |
9.6 | 3.7 | |
3 days ago | 7 months ago | |
Python | ||
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cpplinks
-
The Fuzzing Book
More on compiler correctness in general: https://github.com/MattPD/cpplinks/blob/master/compilers.cor... and fuzzing in particular: https://github.com/MattPD/cpplinks/blob/master/compilers.cor...
-
Property-Based Testing for the People
Right, metamorphic testing in particular (which would be a special case of PBT, with metamorphic relations being properties), https://en.wikipedia.org/wiki/Metamorphic_testing, https://github.com/MattPD/cpplinks/blob/master/testing.md#pr...
One simple example (from the above) is "sin (π − x) = sin x" for the implementation of the sine function not requiring the knowledge of the output values. Naturally, instead of literal equality "=" one can use a more appropriate accuracy specification as a, say, relative ulp (https://en.wikipedia.org/wiki/Unit_in_the_last_place) error bound, cf. https://members.loria.fr/PZimmermann/papers/accuracy.pdf
- Evolution of the ELF object file format
-
Needed an advice in compilers dev!
linking and loading: https://github.com/MattPD/cpplinks/blob/master/executables.linking_loading.md - in addition to the aforementioned books and blog posts, there also some pretty good talks: https://github.com/MattPD/cpplinks/blob/master/executables.linking_loading.md#talks
-
How do you test compiler projects?
For more compilers correctness* resources see https://github.com/MattPD/cpplinks/blob/master/compilers.correctness.md
-
Assemblers and linkers resources
As for linkers and loaders, see https://github.com/MattPD/cpplinks/blob/master/executables.linking_loading.md
-
The Danger of Atomic Operations
More: https://github.com/MattPD/cpplinks/blob/master/atomics.lockfree.memory_model.md
-
How to move onto intermediate c++?
Take the red pill and see how deep the rabbit hole goes... https://github.com/MattPD/cpplinks/ https://github.com/shafik/cpp_learning
-
How should I learn x64 instructions?
x86-64 tutorials here should be a good starting point: https://github.com/MattPD/cpplinks/blob/master/assembly.x86.md#tutorials
-
Where should a static analysis beginner start?
See also static analysis resources (more C++-oriented, although some of the readings are general): https://github.com/MattPD/cpplinks/blob/master/analysis.static.md#readings-books and https://gist.github.com/MattPD/71b63a3e1600c2b52e1db80fa2834e60#correctness-in-practice (formal methods and program analysis in industry).
gdb-dashboard
- Cyrus-and/GDB-dashboard: Modular visual interface for GDB in Python
- Everything You Never Wanted to Know About CMake (Redux)
-
VSCode -> VIM, but how do I accomplish the other IDE tasks?
To debug, termdebug is built in to vim and supports a front end to gdb. In combination with gdb-dashboard this gives a reasonably good debugging experience
-
Are there any cpu emulators that could help me learn i386 assembly?
https://github.com/cyrus-and/gdb-dashboard, https://github.com/cyrus-and/gdb-dashboard/wiki
-
Usage of GDB over command line
You can use the Python API to GDB to get really fancy TUIs like this: https://github.com/cyrus-and/gdb-dashboard
-
Debugging with GDB
Try GDB Dashboard, it makes gdb much easier to use:
https://github.com/cyrus-and/gdb-dashboard
There's also Voltron which works with both gdb and lldb (amongst others):
https://github.com/snare/voltron
I can't believe no one has mentioned `gdb-dashboard` [1] yet! I use it extensively. [2]
Beyond that, I have recently learned how to write custom pretty printers for GDB. This saves a lot of screen space. I should probably update [2] soon with those new techniques.
GDB is powerful, useful, and after getting my start in IDE debuggers, including Visual Studio, I struggle whenever I have to go back.
[1]: https://github.com/cyrus-and/gdb-dashboard
[2]: https://gavinhoward.com/2020/12/my-development-environment-a...
- Gdb-dashboard: a better TUI for gdb
-
How do I "replicate" an IDE like the Keil uVision or the TI CCS using Visual Studio Code?
Debugging: Learn gdb. You can use it for assembly. You can use it for C on a MCU. You can use it for Go on a Linux system. It’s ubiquitous, versatile, and worth understanding. You can pretty-print the output with something like this to help you out at first. There are 2 things you need, however: on chip debugger and a debug probe (though you don’t need an expensive one). Effectively, you talk to GDB, GDB talks to the server exposed by OCD, OCD knows the debug probe protocol, and the debug probe can use the MCU debug peripheral via SWD or JTAG to get those details.
-
Using gdb to be productive
I use gdb because I'm usually in the terminal. I don't think terminal it's any faster though. This is a nice addition to boring old terminal gdb.
What are some alternatives?
clang-tutor - A collection of out-of-tree Clang plugins for teaching and learning
gef - GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux
cppcoro - A library of C++ coroutine abstractions for the coroutines TS
pwndbg - Exploit Development and Reverse Engineering with GDB & LLDB Made Easy
xhyve - xhyve, a lightweight OS X virtualization solution
lldb-mi - LLDB's machine interface driver