gdb相关内容

需要在GDB中加载共享库的调试符号

我正在使用gdb调试一个使用libp线程的程序。有一个错误 发生在pthREAD_CREATE中,需要进入该函数。不幸的是,当我调试我的程序时,它不能正确地加载共享库符号,所以我不能跳过源代码并有意义地检查程序行为。这是我启动gdb时的输出。 Remote debugging using 127.0.0.1:21293 warning: limiting remote suggested p ..
发布时间:2022-08-29 14:01:57 其他开发

在GDB中中断失败断言的正确方法是什么?

我正在尝试捕获程序中失败的断言。我正在使用一个直接调用Assert()的库,而不是一个定制函数或宏,目前我正试图在这个库中跟踪几个与移植相关的错误。所有涉及的内容都已在g++中使用调试符号进行了编译。 我所找到的最佳解决方案是在Assert的file:行中使用Assert表达式的条件断开。这允许在断言失败之前停止,但这是一个可怕的解决方案。它需要为每个可能失败的断言进行特殊设置,在我的IDE ..
发布时间:2022-08-26 11:28:29 C/C++开发

GDB在进程核心中的评估功能

有没有办法在gdb的进程核心上下文中执行函数? 其动机是运行一个函数,该函数将遍历大树以查找特定节点。我可以手动遍历树,但我想构建一个函数来帮助我分析核心。 因此使用函数或“gdb脚本”来遍历数据树。 推荐答案 有没有办法在gdb的进程核心上下文中执行函数? 否:为此,您需要一个“活动的”次进程。 我可以手动遍历树,但我想构建一个函数来帮助我分析核心。 您 ..
发布时间:2022-07-25 17:44:02 其他开发

代码::BLOCKS-警告:gdb:无法设置控制终端:不允许操作

我已经通过官方资源库安装了Ubuntu 14.04中的Code::Block 13.12。当我编译时,一切都很顺利。但当我调试时,在外壳程序中显示以下消息: 警告:gdb:设置控制终端失败:操作备注 允许 程序一直执行到断点,但当我执行下一行时,不会再显示任何内容。 如何修复此问题? PD:我已经安装了最新版本的GDB(存储库中的版本)。我也试过使用Linux终端,而不是C ..
发布时间:2022-07-14 18:06:58 服务器开发

如何标记C源文件中的位置,以供以后的断点定义使用?

问题: 我希望能够在C代码中放置不同的可能唯一或重复的标记,这样我就可以在GDB中使用它们来创建断点。 相似工作: 断点到行号:与源行上的断点的主要区别在于,如果以某种方式修改标记之前的代码,从而导致或多或少的行,则对标记的引用在语义上仍然是正确的,而对源行的引用则不会。 标签:我来自上一个问题How to tell gcc to keep my unused labels?,其 ..
发布时间:2022-06-14 12:18:19 其他开发

使用GDB调试英特尔C++编译代码

我正在尝试调试用英特尔C++编译的C++代码。 我试过非常小的测试程序。我使用“/Zi”选项进行了编译,我看到生成了*.pdb文件,但gdb没有显示任何调试符号。连我都不能中断main()函数。 在论坛中,人们提到了英特尔的“IDB”调试器。但我没有在我的安装区找到它。我在一台计算机上安装了Intel Composer版本,在另一台计算机上安装了Professional Addition。这 ..
发布时间:2022-05-08 21:01:40 C/C++开发

Gdb:暂时重定向目标标准输出

当我启动gdb时,目标进程打印大量数据,因此我希望将其重定向到NULL,直到某个时间点。 到目前为止,我找到的唯一两种方法是: 运行>文件名 tty文件名 问题是我找不到方法将下级的标准输出恢复到正常。 没有“tty Default”或“Default tty” 谢谢, 当天 推荐答案 我找不到将下级标准输出恢复到正常的方法 您可以这样做 ..
发布时间:2022-04-07 17:27:58 服务器开发

gdb:没有可用的瓶子-gdb安装

我尝试在我的(M1)Mac OS 11.5.2上安装gdb命令,但出现BREW错误&gdb:没有瓶子!&qot; 我使用brew install gdb 输出如下: Error: gdb: no bottle available! You can try to install from source with: brew install --build-from-source gd ..
发布时间:2022-03-14 16:08:29 其他开发

派生后从子进程分离gdb-是否禁用?

在gdb中获取此消息。我知道这不是什么错误。我还做了分页,所以这不是问题。 有什么方法可以取消显示此邮件吗? 推荐答案 我很好奇这个问题没有得到回答. 我拿到了GDB manual,上面写着(PDF‘第九版,适用于gdb版本7.0.50.20091228’的第-p33部分): 在gdb控制下启动或退出下级时通知 set print inferior-events: ..
发布时间:2022-03-13 11:30:11 其他开发

如何将gdb调试限制为一次只能调试一个线程

我希望通过控制哪些线程在何时执行来调试多线程程序。我使用的是C++和gdb。除了主线程(对于示例程序),我还有两个线程,我想调试一个线程,同时保持另一个线程停止。 以下是我编写的示例程序: #include #include #include #define NUM_THREADS 2 using namespac ..
发布时间:2022-02-26 18:33:30 其他开发

如何检测gdb是否正在运行当前进程

标准方式如下: if (ptrace(PTRACE_TRACEME, 0, NULL, 0) == -1) printf("traced! "); 在这种情况下,如果跟踪当前进程(例如,使用gdb运行它或附加到它),ptrace将返回错误。 但这有一个严重的问题:如果调用成功返回,gdb以后可能不会附加到它。这是一个问题,因为我没有尝试实现反调试的东西。我的目的是在满足条件时发 ..
发布时间:2022-02-24 17:20:26 服务器开发

步入地理数据库中的特定功能

GDB是否支持在包含嵌套函数调用表达式(如 )的行上单步执行特定的函数,例如f或g f(g()); 类似于what Visual Studio 2010 support。也许gdb脚本就是解决方案? 推荐答案 gdb是否支持单步执行特定函数 没有。如果您想单步执行g,简单的step就可以了。如果要单步执行f,请执行step、finish、step。 欢迎您在gdbb ..

为什么gdb提示“核心文件中'.reg-xstate/xxxxx'部分的大小意外."?

我的操作系统是Debian,当使用gdb分析一个核心转储文件时,得到如下信息: ......程序因信号 SIGSEGV、分段错误而终止.警告:核心文件中“.reg-xstate/67327"部分的大小异常....... 谁能解释为什么提示警告(“核心文件中'.reg-xstate/67327'部分的意外大小.")? P.S.,我的 gdb 版本是: $ gdbGNU gdb (Debi ..
发布时间:2022-01-24 23:27:36 服务器开发

如何在 gdb 中转储 STL 容器数据?

我无法在 gdb 中转储 STL 无序映射容器值.变量类型是std::unordered_mapvar; 我的 gdb 版本 - 7.7.1gdb 配置: 配置 --host=x86_64-linux-gnu --target=x86_64-linux-gnu--with-auto-load-dir=$debugdir:$datadir/auto-load--with-auto-load ..
发布时间:2022-01-24 21:14:07 C/C++开发

如何使用 GDB 检查堆栈帧?

现在我一直在使用 GDB 反汇编二进制文件并检查不同的寄存器等等.是否有一个简单的命令来检查堆栈上的所有内容?这可以仅限于函数中的所有内容吗? 解决方案 对于当前栈帧: 信息框架列出有关框架的一般信息(事物在内存中的起始位置等) info args 列出函数的参数 info locals列出存储在框架中的局部变量 ..
发布时间:2022-01-22 12:20:16 其他开发