LLDB命令jump允许我在与其停止位置不同的位置继续执行程序,但它似乎仅限于当前函数中的地址:
(lldb) jump CLI.cpp:15
error: CLI.cpp:15 is outside the current function.我对此很好奇,因为lldb的帮助中没有记录这个限制,语法jump <file>:<line>以某种方式表明可以使用任意的入口点:
(lldb)帮助跳转(‘_regexp-跳转’)将程序计数器设置为一个新地址。期望“原始”输入(参见“帮助原始输入”)。语法:_regexp-跳转_regexp-跳转+区-_regexp-跳跃_regexp-跃*‘跳转’是‘_regexp-跳转’的缩写。
我知道,在不同的帧/堆栈中恢复可能会使程序处于不一致的状态,并产生“非常好的”副作用。
如何在lldb中跳转到当前函数之外的行(忽略可能的副作用)?
发布于 2018-05-17 19:43:24
jump是一个包装器命令,它将底层thread jump的一些常见用途打包成一个紧凑的表单。这就是所有_regex-命令在lldb中的内容。做:
(lldb) help command regex如果您想要更多关于这个regex命令的详细信息,当然还有
(lldb) help thread jump为了你能用那个命令做的一切。
包装器不允许跳出当前函数,因为这绝对不是一个安全的操作,因此默认情况是假设您在输入行或文件名时出错.
底层命令有一个--force选项,允许您将pc移出当前函数。
https://stackoverflow.com/questions/50390921
复制相似问题