gdb

c – 如何使用gdb进行调试?

我试图在我的程序中添加一个断点但是我总是发现错误:我该怎么办?解决方法这是gdb的快速入门教程:编译-g选项:将现在包含调试符号的可执行文件加载到gdb中:现在你应该在gdb提示符下找到自己.在那里可以向gdb发出命令.假设您希望在第11行放置断点,并执行执行,打印局部变量的值–以下命令序列将帮助您执行此操作:简而言之,您需要使用以下命令来开始使用gdb:在提示符下键入help以获取所有有效命令的列表和描述.

c – gdb步骤不能按预期工作

我在Linux上调试静态多线程x86-64C应用程序.我可以在函数上设置断点,停止它们,我可以一步一步地走过函数体.但是当我尝试进入另一个函数时,gdb不会停止它的开始,它似乎只是继续执行.当我中断程序执行时,gdb会处于断开状态并变得不可用:作为解决方法,我可以使用stepi几次而不是step,stepi按预期工作.可能是这种行为的原因?您可以尝试从CVS升级到顶级GDB版本,如果GDB仍然损坏,请报告GDBbugzilla中的错误.

使用GDB和Eigen C库

我正在使用可从http://eigen.tuxfamily.org/下载的EigenC库.这是一个C库,可以更轻松地处理矩阵和数组.我使用g编译器和gdb进行调试.但是,我发现在使用gdb时我无法打印Matrix的内容(由Eigen提供).解决方法您必须安装可在eigen/debug/gdb/中找到的gdb扩展.文件开头的注释说明了如何安装它.

这可以让GDB识别预处理器符号吗?

我有很多很多C预处理器#define语句,这使我的C编程更容易.但是,在使用GDB进行调试时,符号列表中不会考虑预处理器“标签”.有没有办法让GDB识别#defined标签?

GDB如何在运行时评估C表达式

在调试时,我最近注意到GDB能够在调试程序时评估“复杂”表达式,我想知道它是如何做到这一点的.例如,使用以下代码:我能够编译程序g-gmyprogram.cpp并在GDB中调试它,这允许我键入printv.at;并打印v.at==3,其值为true.我想知道GDB是如何做到这一点的.ThisSOquestion暗示它是“在内存中编译”的东西,但没有进一步详细说明,所以我想知道它是否使用某种JIT来使这一切工作或其他什么?他们是否有一个框架来在调试环境中动态评估C?

帮助gdb跟踪(或类似)

我有一个申请.我有源代码(在C中).无论如何我都可以编译它.添加我想要的任何工具.等等.但是,我不想用一堆printf来源代码.我希望能够生成某种类型的日志,该日志显示何时写入特定值(例如全局结构的某个成员)(其值更改).我希望能够显示源文件和行号,以及旧值和新值.我还希望能够按名称而不是地址指定值.但地址还可以.如果我可以指定一个函数的本地值,则可以获得奖励积分.我仍在试图找出gdb的跟踪命令.

来自根本未调用的函数的分段错误

id=v1.23-chrome32-firefox24您将看到我没有调用函数readFromIn(),一旦您尝试运行可执行文件就会发生分段错误.我重新运行gdb,这次,回溯和帧告诉我更多的信息.所以是啊..我想我已经提供了所有信息……

C 0x线程静态连接问题

我有一些问题试图使用c0x线程功能静态链接程序.代码看起来这样((Compiler是gcc4.6.1在Debianx86_64测试)我链接到:当我执行程序时,我有以下错误:GDB调试输出如下所示:更新:与静态libstdc链接可能(可能)使此错误消失,并且编译的C0x程序可以在没有gcc4.6libs的系统上运行:但是,首先,我们应该在当前目录下创建一个符号链接到“libstdc.a”:(参考:h