如何在LLDB中调用常规函数(不是块)?
我尝试过使用:
expr int $addr = 0x51bb45
expr (void (^)(void))$addr
expr $0()
但我得到一个错误'在小小的恢复后没有得到跑步的事件,而是被停止了。无法执行功能;结果是eExecutionSetupError'
这是声明函数的方式,但我没有符号...... extern“C”void do_something(void)
编辑:
解决方案是使用:
(void (*)(void))$addr
答案 0 :(得分:1)
如果这是声明函数的方式,则它是块指针而不是常规函数。正如nos所说,如果它是一个函数指针,它将在声明中有一个*。 lldb目前还不知道如何调用块指针:如C ++& ObjC方法他们需要一个正确的人为的第一个参数,而lldb不知道如何为块做到这一点。