我试图使用 GDB 遍历代码,而 GDB 总是尝试显示 C++ 模板源代码,这使得调试不方便并且浪费了我很多时间。
GDB 尝试介入该函数,当它找不到实现模板的文件时,它会显示错误,或者它会跳转到我不想看到的模板代码。
我找不到如何禁用显示/单步进入容器或模板源代码的方法。我想跨过去,但我不知道该功能是否可用。
使用 GDB 调试时是否可以禁用单步进入模板?当我为前任走过去时。make_unique
函数,我希望 GDB 不会试图显示make_unique
执行。有什么建议吗?
一个可以用next
命令跳过函数调用,或者finish
跳出函数。
另一种方法是使用skip
or skip file
命令。这使得 GDB 总是跳过不需要的函数或源文件,即使使用step
命令。
然而,这并不总是人们想要的。例如,在调试中使用的比较函数时std::sort
,想要直接进入比较函数,跳过所有std::sort
执行。或者想进入构造函数,跳过std::make_unique
执行。
不幸的是,这对于 GDB 来说是不可能的(不设置断点)。当跳过函数或文件时,GDB 也会跳过所有调用的内容from该函数或文件。
另一个著名的调试器具有所需的功能,称为只是我的代码 https://learn.microsoft.com/en-us/visualstudio/debugger/just-my-code?view=vs-2019,但它仅适用于 Windows。
由于某种原因,GDB 的“跳过文件”功能有时被吹捧为相当于“Just My Code”。它不是。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)