我试图使用GDB遍历代码,GDB总是尝试显示C++模板源代码,这使得调试变得不方便,浪费了大量的时间。
GDB尝试进入这个函数,当它找不到模板实现的文件或者跳入我不想看到的模板代码时,它会显示一个错误。
我找不到如何禁用显示/进入容器或模板源代码的方法。我想换一步,但我不知道这个功能是否可用。
在使用GDB进行调试时,可以禁用进入模板的步骤吗?当我走过去找前任的时候。make_unique函数,我希望GDB不要试图显示make_unique实现。有什么建议吗?
发布于 2019-09-29 22:23:10
可以使用next命令跨过函数调用,也可以使用finish退出函数。
另一种方法是使用skip或skip file命令。这使得GDB总是跳过不需要的函数或源文件,即使在使用step命令时也是如此。
然而,这并不总是一个人想要的。例如,在调试std::sort中使用的比较函数时,人们希望直接进入比较函数,跳过所有的std::sort实现。或者,有人希望跳转到构造函数中,跳过std::make_unique实现。
不幸的是,这在GDB中是不可能的(不设置断点)。当跳过函数或文件时,GDB也跳过从该函数或文件中调用的所有内容。
另一个著名的调试器具有所需的功能,称为只是我的密码,但它仅适用于Windows。
出于某种原因,GDB的“跳过文件”特性有时被吹捧为“只是我的代码”。事实并非如此。
https://stackoverflow.com/questions/58159433
复制相似问题