2010-09-19 32 views
7

有没有方法可以测试gdb中是否设置了便利变量?测试gdb便利变量是否已定义

例如:

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

$_exitcodevoid,因为它没有被设置,直到程序结束。最接近的可用构造是init-if-undefined,但这需要将该变量设置为某个标记值并进行测试。

回答

2

我有同样的问题..你不能检查是否已经设置了一个变量或者没有我所知道的GDB ..你可以通过python运行它,并且让整个脚本以这种方式运行,但我不确定GDB中的python脚本是持久的还是一直运行。 你可以做这样的事情..

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

由于正常的进程退出代码是在0到255之间的某个地方,我建议如下:

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