Ich debugge ein Problem, das ich in der Clam-Compiler auf GNU/Linux gefunden (berichtete here). Um das Problem zu finden, muss ich rückwärts von dem Punkt debuggen, an dem clang die Ausgabedatei schreibt.gdb catchpoint auf schreiben syscall funktioniert nicht
Ich versuchte, ein Catchpoint auf der Schreib syscall Einstellung:
(gdb) catch syscall write
Catchpoint 2 (syscall 'write' [1])
Ich habe auch einen Haltepunkt:
(gdb) break write
Breakpoint 3 at 0x7ffff6a7c700: write. (2 locations)
Aber wenn ich ein Testprogramm zu kompilieren, wird kein Breakpoint ausgelöst: GDB nur Ausfahrten normalerweise. Ich habe bestätigt, dass es die Ausgabedatei schreibt, also muss write irgendwo aufgerufen werden. Weiß jemand, was ich hier falsch machen könnte? Vielen Dank!
Ah, danke! Ich wusste nicht über clang -cc1. Würde ich zum Debuggen von -cc1 einfach -cc1 zu meinen Befehlszeilenargumenten hinzufügen? –
Ja. Ich habe meine Antwort aktualisiert, um sie ebenfalls zu reflektieren. – echristo
Vielen Dank! Ich habe meinen ersten Befehl mit -v ausgeführt, dann habe ich meine gdb-Argumente darauf gesetzt, und der Breakpoint wurde ausgelöst! Sehr geschätzt! Ich habe dies als die Antwort markiert. –