有两种方式可以获得你想要的结果。一种是使用 "next" 而不是 "step"。 "step" 会进入一个函数调用,但 "next" 会跳过它。选择下一个步骤命令是处理此问题最常见的方法。现在,这并不总是完全符合您的需求。特别是,您可能在一个包含多个调用的行上,而其中有一些子集您总是想跳过。这在 C++ 中很典型,因为经常有许多微小的访问器和微不足道的构造函数,实际上并不重要 - 但您必须费力地逐个跨过它们才能进入您真正关心的调用中。对于这种更复杂的场景,GDB 有 "skip" 命令。它可以用于“黑名单”某些功能(或整个文件)。当一个函数被列入黑名单时,“step” 将不会进入它。请参阅手册了解如何使用 "skip" 的更多详细信息。最后一种非常重的达到相同效果的方式是确保您没有任何您不想调试的库的调试信息。如果没有调试信息,GDB 将自动不会进入函数。
gdb调试器自动进入大多数函数
是什么意思? - Pawanstring str =“foo”;
时,gdb会进入string.h
中的函数。 - Arkhancontinue
并不会跳到下一行,而是next
才会。你可能正在使用step
而不是next
。 - Ismail Badawi