社区
Linux/Unix社区
帖子详情
使用GDB打印变量卡死怎么破
glovej
2014-11-07 01:56:12
在使用GDB实时调试时,有时会去尝试打印某个结构体或者类的成员,这个时候GDB经常卡死,原因不明
比如
(gdb)p testStruct->member1
就没有响应了,按ctrl+c等键也没法退出,打印内存区域倒是可以解决打印变量的问题,但我想了解的是万一出现了打印卡死的现象后,有办法恢复程序响应吗
...全文
335
4
打赏
收藏
使用GDB打印变量卡死怎么破
在使用GDB实时调试时,有时会去尝试打印某个结构体或者类的成员,这个时候GDB经常卡死,原因不明 比如 (gdb)p testStruct->member1 就没有响应了,按ctrl+c等键也没法退出,打印内存区域倒是可以解决打印变量的问题,但我想了解的是万一出现了打印卡死的现象后,有办法恢复程序响应吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
glovej
2014-11-19
打赏
举报
回复
今天又出现了,感觉似乎和编译器有关
glovej
2014-11-17
打赏
举报
回复
我是一套跨平台的代码,明明VC下可以打印出来,不知道为什么GDB一打类成员有很大概率就卡死,很郁闷
fly 100%
2014-11-12
打赏
举报
回复
一般读内存先要检查下内存地址是否存在
Cody2k3
2014-11-08
打赏
举报
回复
楼主的问题我有时也碰到,没有特别好的办法,升级gdb的版本到最新通常可以解决很多奇怪的问题 下面这个bug report和楼主所述问题相关,仅供参考 https://bugzilla.redhat.com/show_bug.cgi?id=541093
Linux开发入门:
使用
gdb
调试C/C++入门教程
GDB
(GNU symbolic debugger)简单地说就是一个调试工具。它是一个受通用公共许可证即GPL保护的自由软件。像所有的调试器一样,
GDB
可以让你调试一个程序,包括让程序在你希望的地方停下,此时你可以查看
变量
、寄存器、内存及堆栈。更进一步你可以修改
变量
及内存值。
GDB
是一个功能很强大的调试器,它可以调试多种语言。在此我们仅涉及 C 和 C++ 的调试,而不包括其它语言。还有一点要说明的是,
GDB
是一个调试器,而不像 VC 是一个集成环境。你可以
使用
一些前端工具如XX
GDB
、DDD等。他们都有图形化界面,因此
使用
更方便,但它们仅是
GDB
的一层外壳。因此,你仍应熟悉
GDB
命令。事实上,当你
使用
这些图形化界面时间较长时,你才会发现熟悉
GDB
命令的重要性。在你调试你的程序之前,当你编译你的源程序时,不要忘了 -g 选项或其它相应的选项,才能将调试信息加到你要调试的程序中。例如:gcc -g -o hello hello.c 。
GDB
排查死锁问题
gdb
排查死锁问题
ros节点启动挂掉
使用
gdb
调试——访问未初始化的内存错误
文章目录1.问题2.
gdb
调试定位错误3.问题解决 1.问题 在ros节点启动的时候,如果节点运行出问题会报错process has died,然后还会
打印
log日志,但是这个日志基本没什么用,里面一般不会
打印
哪个文件或者运行到哪出错误了,所以无法用于调试。实际比较快的定位错误还是要
使用
gdb
。 2.
gdb
调试定位错误 首先重新编译程序,把Release模式改成Debug模式。 然后要根据运行的
打印
输出初步判断有可能是哪个节点出错,然后在运行这个节点的时候
使用
gdb
在运行这个可能出错的节点的时候
使用
gd
GDB
调试段错误导致应用程序异常终止
使用
gdb
工具调试几种发生段错误导致应用程序异常终止的现象 设置生成核心转储文件 保存崩溃时的进程映像,用于结合程序复现崩溃场景。 ulimit为shell内建指令,可用来控制shell执行程序的资源。 我们需要修改的是核心转储文件大小限制: ulimit -c unlimited 注意程序堆栈资源为8M,下面会针对堆栈溢出场景做分析,当然这个值也可以
使用
-s参数手动修改。
gdb
调试堆栈溢出导致应用程序段错误 局部
变量
消耗栈区空间 当栈区资源消耗>8M时会发生段错误,触发核心转储。 $
gdb
so
emacs中用
gdb
调试
在emacs中用
gdb
调试c/c++还是很方便的,不过一直以来用惯了vc6,按起gud默认的按键来说确实不很方便,所以就作了一些按键映射来模仿vc6的调试: (setq
gdb
-many-windows t)(global-set-key [f5]
gdb
)(global-set-key [C-f5] gud-run)(global-set-key [S-f5] gud-co
Linux/Unix社区
23,110
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章