首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用GDB遍历代码时禁用步进C++模板?

问如何在使用GDB遍历代码时禁用步进C++模板?
EN

Stack Overflow用户
提问于 2019-09-29 21:43:41
回答 1查看 946关注 0票数 1

我试图使用GDB遍历代码,GDB总是尝试显示C++模板源代码,这使得调试变得不方便,浪费了大量的时间。

GDB尝试进入这个函数,当它找不到模板实现的文件或者跳入我不想看到的模板代码时,它会显示一个错误。

我找不到如何禁用显示/进入容器或模板源代码的方法。我想换一步,但我不知道这个功能是否可用。

在使用GDB进行调试时,可以禁用进入模板的步骤吗?当我走过去找前任的时候。make_unique函数,我希望GDB不要试图显示make_unique实现。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2019-09-29 22:23:10

可以使用next命令跨过函数调用,也可以使用finish退出函数。

另一种方法是使用skip或skip file命令。这使得GDB总是跳过不需要的函数或源文件,即使在使用step命令时也是如此。

然而,这并不总是一个人想要的。例如,在调试std::sort中使用的比较函数时,人们希望直接进入比较函数,跳过所有的std::sort实现。或者,有人希望跳转到构造函数中,跳过std::make_unique实现。

不幸的是,这在GDB中是不可能的(不设置断点)。当跳过函数或文件时,GDB也跳过从该函数或文件中调用的所有内容。

另一个著名的调试器具有所需的功能,称为只是我的密码,但它仅适用于Windows。

出于某种原因,GDB的“跳过文件”特性有时被吹捧为“只是我的代码”。事实并非如此。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58159433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档