Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python脚本时,在Xcode lldb调试器中清空lldb.frame变量 我目前正在为C++中的自定义对象绘制绘图命令。我使用的是Xcode v10.1_Python_C++_Xcode_Lldb - Fatal编程技术网

使用Python脚本时,在Xcode lldb调试器中清空lldb.frame变量 我目前正在为C++中的自定义对象绘制绘图命令。我使用的是Xcode v10.1

使用Python脚本时,在Xcode lldb调试器中清空lldb.frame变量 我目前正在为C++中的自定义对象绘制绘图命令。我使用的是Xcode v10.1,python,c++,xcode,lldb,Python,C++,Xcode,Lldb,我使用命令脚本import test.py导入自己的命令,其中包含以下函数: import lldb def test_function(debugger, command, result, dict): obj = lldb.frame.FindVariable("custom_object") print(obj) def __lldb_init_module (debugger, dict): debugger.HandleCommand('comm

我使用命令脚本import test.py导入自己的命令,其中包含以下函数:

import lldb

def test_function(debugger, command, result, dict):
        obj = lldb.frame.FindVariable("custom_object")
        print(obj)

def __lldb_init_module (debugger, dict):
  debugger.HandleCommand('command script add -f test.test_function test')
其中自定义对象是我想在Python脚本中使用的对象

如果我刚刚打开调试器,则会出现以下错误:

obj = lldb.frame.FindVariable("custom_object")
AttributeError: 'NoneType' object has no attribute 'FindVariable'
然而,当我在Xcode中直接打开嵌入式Python解释器并执行与上面相同的代码行时,我没有得到任何错误


如果我现在再次执行自定义命令,它将对调试器相同范围内的所有对象成功执行。

lldb.frame
未在基于lldb python的命令中定义-这就是为什么它是
NoneType
lldb.{process,thread,frame}
只是为了方便使用交互式脚本解释器。但是,对于一个可能在停止钩子、断点命令等中运行的命令来说,它的进程和线程依赖于某种全局状态是没有意义的。毕竟,可能有两个线程同时命中同一断点。因此没有唯一的“lldb.thread”

最好使用以SBExecutionContext作为第三个参数(如中所述)的命令函数版本,并从该参数获取线程和帧