2010-09-19 9 views
7

Gibt es eine Möglichkeit zu testen, ob eine Convenience-Variable in gdb gesetzt wurde?Testen, ob eine GDB-Convenience-Variable definiert ist

Zum Beispiel:

 
(gdb) if $_exitcode == 0 
>quit 
>end 
Invalid type combination in equality test. 
(gdb) p $_exitcode 
$1 = void 

$_exitcode ist void, weil es nicht, bis das Programm beendet gesetzt. Das nächste verfügbare Konstrukt ist init-if-undefined, aber dafür müsste die Variable auf einen bestimmten Sentinel-Wert gesetzt und getestet werden.

Antwort

2

Ich habe das gleiche Problem .. Sie können nicht überprüfen, ob eine Variable gesetzt wurde oder nicht, soweit ich weiß in GDB .. Sie könnten es wahrscheinlich durch Python ausführen, und lassen Sie das ganze Skript auf diese Weise ausgeführt werden , aber ich bin mir nicht sicher, ob die Python-Skripte in GDB persistent sind oder die ganze Zeit laufen. Sie könnten wie etwas tun ..

init-if-undefined $_exitcode = 1 
if $_exitcode == 0 
quit 
end 
end 
4

Da Code normalen Prozess Ausgang irgendwo zwischen 0 und 255 ist, schlage ich vor, folgenden:

init-if-undefined $_exitcode = -1 
if ($_exitcode != -1) 
    quit 
end 
Verwandte Themen