使用gdb python脚本,我可以让助手函数针对意外情况抛出错误:
def isFOOEnabled( ):
sb = gdb.parse_and_eval( "foo" )
if sb == 0x0:
raise gdb.GdbError( "Fatal error." )
return sb
我可以在lldb python中捕获表达式未计算错误,如下所示:
def isFOOEnabled( ):
sb = lldb.frame.EvaluateExpression( "foo" )
if sb.GetValue() is None:
return 0
return sb
但是我也想强制脚本中止,就像我的gdb版本一样。
下面是一个调用gdb.gdberror的示例:
(gdb) info zregisters
Traceback (most recent call last):
File "/home/pjoot/gdb/zinfo.py", line 157, in invoke
isFOOEnabled( )
File "/home/pjoot/gdb/apis/common.py", line 24, in isFOOEnabled
sb = gdb.parse_and_eval( "sysblk" )
gdb.error: No symbol "sysblk" in current context.
Error occurred in Python command: No symbol "sysblk" in current context.
(gdb)
之后,您将返回(gdb)shell,使用python堆栈跟踪,以便知道哪里出了问题。看起来gdb.gdberror接受的字符串参数实际上丢失了。
是否有类似gdb.gdberror()这样的python lldb.*helper函数?
暂无答案!
目前还没有任何答案,快来回答吧!