LLDB当寄存器== somevalue时,如何设置断点?

时间:2016-04-17 16:30:38

标签: debugging lldb

当寄存器== somevalue时,如何在lldb中设置断点 (rdi = 0x0000000000000000)?有可能吗?

1 个答案:

答案 0 :(得分:1)

lldb表达式解析器提供$rdi$rsi等作为寄存器值的便利变量。所以:

(lldb) break modify -c "$rdi == 0x0000000000000000" <BKPT_NO>

将完成这项工作。您还可以在设置断点时指定-c(即--condition)选项。

注意,对于在寄存器中传递参数的体系结构,lldb也有“$ arg1”,“$ arg2”等。这些只是ABI指定的参数传递寄存器的别名,所以如果你在某个地方的中间位置一个函数,他们将不再持有参数值。但是为了在函数的开头设置断点,它们可以派上用场。