如何在lldb中设置断点,当register == somevalue (rdi = 0x0000000000000000)时停止?是否可以?
lldb 表达式解析器提供$rdi
、$rsi
等作为寄存器值的便利变量。所以:
(lldb) break modify -c "$rdi == 0x0000000000000000" <BKPT_NO>
Run Code Online (Sandbox Code Playgroud)
会做这项工作。设置断点时还可以指定-c(即--condition)选项。
请注意,对于在寄存器中传递参数的体系结构,lldb 还具有“$arg1”、“$arg2”等。这些只是 ABI 指定的参数传递寄存器的别名,因此,如果您位于函数中间的某个位置,它们将不再保留参数值。但对于在函数开头设置断点,它们可以派上用场。