[转]gdb结合coredump定位崩溃进程】的更多相关文章

[转]gdb结合coredump定位崩溃进程 http://blog.sina.com.cn/s/blog_54f82cc201013tk4.html Linux环境下经常遇到某个进程挂掉而找不到原因,我们可以通过生成core file文件加上gdb来定位.   如何产生core file? 我们可以使用ulimit这条命令对core file文件的大小进行设定. 一般默认情况下,core file的大小被设置为了0,这样系统就不dump出core file了. 这时用如下命令进行设置: uli…
gdb调试coredump(使用篇) 看到一个非常好的介绍coredump的文章,做个记录, 参考链接: https://blog.csdn.net/sunxiaopengsun/article/details/72974548 什么是coredump Coredump叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照.操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存.寄存器状态.运行堆栈等信息转储保存在一个文件里. 该文件也是二进制文件,可以使用gdb.e…
本文转载自: http://blog.csdn.net/sky_qing/article/details/8548989 如果在测试过程中遇到某个进程的CPU利用率过高或者卡死而需要去调试该进程时,可以利用gdb命令生成coredump文件,然后再去调试coredump文件来定位问题. 那么如何使用gdb生成coredump文件呢?其实步骤很简单: 1. 安装好gdb,然后使用命令 'gdb'.(假设需要调试的进程号为 21509) 2. 使用 ‘attach 21590’命令将gdb附加到进程…
gdb 调试coredump文件过程: 第一步:首先需要一个进程的coredump文件,怎么搞出coredump文件呢? 1. ps -fax|grep                 进程名称 找到进程的pid 2.gdb -p pid                     调试进程 3.gcore coredump名称        则生成core文件 第二步:找出coredump文件的应用程序 1.gdb -c corefile   使用gdb调试core文件 2.info auxv  …
linux上程序崩溃起来挺烦人,不过linux 比较好的是有gdb. 1.生成coredump文件 echo "ulimit -c unlimited" >> /etc/profile 然后记得敲入命令 source /etc/profile 然后敲入命令: ulimit –c 效果如下: 确认能否生成coredump文件,使用如下命令(使用时注意,我在测的时候会直接退出当前用户) kill -s SIGSEGV $$ 然后回到执行上述命令的路径下即可看到coredump文…
linux下gdb如何处理coredump错误 在编写C++程序中,我们经常会遇到一种错误,segment fault, 这种coredump错误 会导致程序运行时异常退出或者终止,这种错误没有明显错误提示信息,该如何定位错误呢? 在linux下,这种错误会生成的一个叫做core的文件,这个core文件会记录程序在运行时的内存,寄存器状态,内存指针和函数堆栈信息等等.对这个文件进行分析可以定位到程序异常的时候对应的堆栈调用信息. 但某些情况下,程序异常结束并不会生成这个core文件,我们需要对l…
gdb/valgrind/coredump 调试 1.gdb 调试 while/for 循环 ①如果在调试 while/for的时候,可以用until xxx(其中,xxx代表 行号)直接跳转到循环后面的第xxx行. ②advance xxx, 参考: 2.gdb + backTrace(後向追蹤) 3.gdb + assembly (彙編/汇编) 在gdb进行 运行/run 的时候,输入 layout asm.同时,可以在 list 和 layout asm之间进行转换. 4.利用Valgri…
VS 2005/2008使用map文件查找程序崩溃原因 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一个比较好的方法来找原因,通过生成map文件,由于2005取消map文件生成行号信息(vc6.0下是可以生成行号信息的,不知道microsoft怎么想的,在2005上取消了),只能定位在那个函数发生崩溃.这里可以通过生成cod文件,即机器码这一文件,具体定位在那一行崩溃. 首先配置vc2005生成ma…
原文链接:https://blog.csdn.net/u014585564/article/details/68063269 最近项目中出现了一个问题,服务器端程序会突然崩溃退出,我们采取了coredump技术以找到崩溃原因,即确定进程退出时正在执行的函数是哪个,其状态如何. 如果系统开启了coredump,准确的说如果当前的shell环境开启了coredump,当前shell环境下的程序崩溃退出时,会把当时进程的栈的内存状态写入core文件.使用gdb可以查看这个core文件中保存的栈的状态,…
第一部分:使用GDB GDB源码下载路径:http://ftp.gnu.org/gnu/gdb/ 遇到的主要难点: 选择合适的GDB源码版本 我的mips-linux交叉编译器不支持C++11特性,所以我选择较老的GDB版本 //是不是不太明白我在说啥?自己去试错就知道了.我之前选择了GDB9.1版本,编译途中遇到报该错. //之后又下载了一个GDB版本来编译,make的时候有其他错误,我无法解决. 最终,我选择的合适版本是 gdb-7.12.1.tar.xz,建议读者也下载该版本. //版本老…