您可能知道,在 GDB 中使用
step(s)
命令您可以单步执行函数。但是 s
首先检查并单步执行函数的参数。例如以下函数:
foo(bar(1));
进入
foo
,进入bar
,然后进入foo
。一旦参数数量越来越多,进入参数就变得很烦人。是否可以使用 GDB 直接单步执行 foo
并跳过单步执行其参数?
我知道我可以为
foo
设置断点:)我正在寻找其他解决方案。
只需在 foo 上设置断点并继续在该函数处停止,跳过任何参数函数等。
处理一些复杂的调用时:
printf("%d %d\n", function(), next_function());
我用
step
“转到”该行,然后单步 si
进入。它单步执行第一个调用的函数。然后您可以 finish
退出并再次 si
进入下一个功能。