我在一个长时间运行的程序中有一个全局函数:
int test()
{
int a = 12;
int c = 10;
printf("a=%d",a);
a += c ;
printf("a=%d", a);
return a;
}
我调试程序并断点,然后执行以下命令:
(lldb) call test()
a=12a=22(int) $0 = 22
(lldb)
我希望在我点击
call test()
后,每一行都能在test()
方法中断,而不是立即返回结果。有人知道如何做吗?------------------------------------ 下面是答案 ------------------------------------
@Jason Molenda的答案是正确的,使用
expr -i0 -- test()
代替call test()
:(lldb) b test
Breakpoint 1: 4 locations.
(lldb) expr -i0 -- test()
error: Execution was interrupted, reason: breakpoint 1.1.
The process has been left at the point where it was interrupted, use "thread return -x" to return to the state before expression evaluation.
(lldb)
现在它在test()
中出错了,但是引发了一个错误!!! 怎样避免这个错误?
lldb
(Xcode)中,我按照您上面的回答操作了,但它无法打断每一行。 - isaacselement