gdb调试
文章平均质量分 52
chinaclock
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
函数调用过程栈帧变化详解
函数调用过程栈帧变化详解 函数调用另一个词语表示叫作 过程。一个过程调用包括将数据和控制从代码的一部分传递到另一部分。另外,它还必须在进入时为过程的局部变量分配空间,并在推出时释放这些空间。而数据传递,局部变量的分配和释放通过操纵程序栈来实现。在了解本文章之前,您需要先对程序的进程空间有所了解,即对进程如何使用内存?如果你知道这些,下面的内容将是很easy的事情了。为了您的回顾还转载 2015-12-17 15:38:42 · 3183 阅读 · 0 评论 -
gdb调试带参数程序
想调试的程序依赖于main函数的参数,即输入参数。 忘记了如何设置了,还是在gdb启动后输入set args来设置参数。 找了篇相关的如下,验证ok 摘自:http://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html 一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要转载 2015-12-18 16:47:58 · 1676 阅读 · 0 评论 -
gdb-如何在gdb里自动打印一个链表的方法:写一小段执行嵌套脚本
在调试问题时,使用core文件和gdb来定位时。 发现需要打印错误地方的一个链表,想把这个链表全部打完需要不停的手敲next,将下一个节点打出,然后输入p命令加上变量名。 想到之前看到gdb里也可以用编程的,所以尝试了一下。 敲完while命令后,用help提示了几条如何写的规则:所有的命令(包括while)都是要放在最前面,而且一条命令一行,最后while命令要用单独一行的end来结束原创 2015-12-05 17:00:35 · 4642 阅读 · 0 评论 -
堆栈信息无法分析的调试总结
基本步骤: 1.先利用echo t > /proc/sysrq-trigger,在/var/log/messages中获取进程中的各线程的系统调用信息 2.若是futex等锁相关的,则可以合理怀疑是死锁 3.到gdb中,用info reg命令,查看此时r0寄存器中的值val,然后将其用*(pthread_mutex_t*)val来进行查看,锁的相关信息 4.若确认已经是死锁了,要查看相关堆原创 2016-01-11 20:48:53 · 1129 阅读 · 0 评论 -
/proc/sysrq-trigger文件的功能
摘自: 1.http://blog.youkuaiyun.com/choice_jj/article/details/7965676 2.http://yueyemaitian.iteye.com/blog/1938533 Shell代码 sudo sh -c 'echo w > /proc/sysrq-trigger' ; dmesg 不解,转载 2016-01-11 20:52:14 · 2726 阅读 · 0 评论
分享