相当于gdb.gdberror()的lldb python

lpwwtiir  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(143)

使用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函数?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题