Wie implementiere ich ein Debugging-Tool in meinem individuellen C++-Editor?
-
Ich habe einen individuellen C++-Editor von Grund auf erstellt und möchte ein Debugging-Tool ähnlich wie GDB integrieren. Ich möchte in der Lage sein, kompilierte .cpp-Dateien zu debuggen und die genauen Werte von ausgegebenen Variablen abzurufen. Gibt es eine Drittanbieter-Bibliothek (verfügbar auf GitHub oder anderswo), die mir dabei helfen kann? Ich benötige eine Lösung, die in meinen individuellen C++-Editor integriert werden kann, da die Verwendung der GDB-Befehlszeile direkt für meinen Anwendungsfall nicht durchführbar ist.
Deshalb ist es unmöglich, die GDB-Befehlszeile zu verwenden: Es ist unmöglich, eine Funktion in meinem individuellen C++-Editor mit der GDB-Befehlszeile zu verknüpfen.
Hier ist der Code-Schnipsel aus meinem individuellen C++-Editor, in dem ich diese Debugging-Funktionalität implementieren möchte:
#include <stdio.h> #include <string> int main() { int a = 2; int b = 7; int c = a + b; printf("%d\n", c); return 0; }
GDB (Befehlszeile)
(gdb) break 7 Breakpoint 1 at 0x1400016eb: file test.cpp, line 7. (gdb) run Starting program: test.exe [New Thread 10892.0x38dc] Thread 1 hit Breakpoint 1, main () at test.cpp:7 7 int c = a + b; (gdb) next 8 printf("%d\n", c); (gdb) print a $1 = 2 (gdb) print b $2 = 7 (gdb) print c $3 = 9
Frage: Gibt es eine Drittanbieter-Bibliothek (GitHub-Version) von GDB, mit der ich eine kompilierte .cpp debuggen und den genauen Wert einer ausgegebenen Variable beispielsweise erhalten kann?
void _Project::run_debug() { if (isRunning()) { throw string("It's already running."); return; } _isRunning_debug = true; // Was sollte der Code hier sein? }
-
Es gibt ein GDB/MI Interface:
https://stackoverflow.com/questions/32921105/c-c-linux-gdb-api
https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.htmlViel Spass!