Ich habe versucht, mit anderen Befehlen wie Echo zu haken und es funktioniert gut. Aber wenn es darum geht, den x-Befehl anzuhängen, schlägt er fehl. Hier sind die Codes in meiner .gdbinit-Datei.Wie kann ich den Befehl x in gdb haken?
set $pince_injection_failed = 1
set $pince_debugging_mode = 0
define hook-x
if $pince_injection_failed = 1
echo asdf
end
define hookpost-x
if $pince_debugging_mode = 0
echo zxcv
end
Ich bin mir bewusst, dass gdb keine Aliase einer Funktion zum Hooking akzeptiert. Aber x ist schon eine volle Funktion, nicht wahr? Ich konnte keine Aliase dafür finden. Ich zweifle auch daran, weil ein einzelnes Zeichen für einen Befehl zu kurz ist.
'Haken-x' und' hookpost-x' Arbeit für mich in GDB 7.7.1 fehlt. Mit welcher Version haben Sie dieses Problem? Es könnte ein Fehler in alten Versionen sein, der behoben wurde. Beachten Sie auch, dass 'if $ pince_debugging_mode = 0' immer falsch ist; Wahrscheinlich willst du 'if $ pince_debugging_mode == 0'. Das Fehlen einer 'end'-Anweisung zum Beenden des' if 'kann auch dazu führen, dass der Befehl nicht funktioniert. –
Meine Version ist 7.7.1. Ich habe gerade versucht '' hook-x' in der gdb-Session zu verwenden, anstatt die .gdbinit-Datei zu verwenden, und es funktioniert! Was könnte mit der .gdbinit-Datei falsch sein? Edit: Oh, auch Dank für die if-Anweisung Spitze Edit2: Ich habe versucht, eine minimalistische Version von gdbinit wie folgt zu schreiben: 'definieren Haken-x echo 1 end' Und es – Desertricker
auch nicht arbeiten können Sie fügen einen 'echo'-Befehl als erste Zeile und letzte Zeile Ihrer .gdbinit-Datei hinzu, nur um zu prüfen, ob gdb sie liest? –