2012-07-17 91 views
1

使用gdb调试不熟悉的程序时,程序通常会在执行next后意外退出。当发生这种情况时,我通常会设置一个中断点,重新运行程序并执行step而不是next来跟踪发生的事情。但是,有时很难知道在哪里设置中断点。有没有一种技术会自动设置中断?喜欢的东西:gdb挂钩设置中断

define hook-next 
break 
end 

define hookpost-next 
# delete the previous break if the program is still running 
end 

回答

2

我想你可以用钩旁边,方便的变量,并在退出断点的组合做到这一点。例如:

define hook-next 
set $saved_pc = $pc 
end 

break exit 
commands 
break *$saved_pc 
end 

您可能更喜欢“tbreak”。