1,打开coredump, ulimit -c unlimited 2,重新运行redis得到coredump ./src/redis-server ./redis.conf 使用ls可以查看本文件夹下存在一个core文件 3,使用gdb调试 gdb src/redis-server core #gdb 程序名 core文件 设置程序运行参数后运行程序 (gdb) set args /opt/JMKVCloud/MessageSoft/Redis/redis.conf (gdb...
fork fork-id: 参数fork-id是GDB分配的内部fork编号,该编号可用通过上面的命令info forks获取 coredump 当我们开发或者使用一个程序时候,最怕的莫过于程序莫名其妙崩溃。为了分析崩溃产生的原因,操作系统的内存内容(包括程序崩溃时候的堆栈等信息)会在程序崩溃的时候dump出来(默认情况下,这个文件名为core.pid,其中pid...
背景 近期我开发的一个C程序,在生产环境产生了coredump,但是在调试该core文件时,打出的debug信息并不全。 这种debug信息丢失,其实说白了,就是符号表丢失。一般由两种情况造成,一种是编译的时候没有加-g参数,另一种是dwarf版本不对。 首先排除第一种可能,因为编译脚本是我自己写的,-g参数是有的。而唯一可能出...
(gdb) py-bt #5 (frame information optimized out) #9 (frame information optimized out) 简直一脸懵逼! 看了下gdb的脚本和python代码,发现虽然f_code参数被优化掉了,但是co参数、freevars参数还在啊,根据python代码里freevars的用法,只要-1, -2, -3地退格使用,就是对应的python代码局部变量指针地址了,so,...
#5 0x00007f83f714b53c in __GI___libc_free (mem=<optimized out>) at malloc.c:2968 #6 0x00000000004009c1 in main (narg=1, args=0x7fff510a3d48) at gdbtest.cpp:50 在没有调试信息的情况下,打开coredump堆栈,并不会直接显示core的代码行,这时可以使用disassemble打开该帧函数的反汇编代码...
于是学习了下coredump的调试 讲下PHP coredump的调试,coredump先准备代码比较好,因为PHP是开源的,这点好办。我的是存在/usr/local/src//usr/local/src/php-5.3.10/ 下 第一种当然是通用的调试 gdb/usr/local/php/sbin/php-fpm -c /data/core_files/core-php-fpm-28436-1370008094 ...
path 指向 PROCESS_COREDUMP 文件的路径 5.查看堆栈 bt #0 0xaafe4ca6 in inline_tgkill (sig=6, pid=<optimized out>, tid=<optimized out>) at bionic/libc/bionic/abort.cpp:43 #1 abort () at bionic/libc/bionic/abort.cpp:68 #2 0xaaea8cd0 in __android_log_assert (cond=<optimized out...
GDB分析PHP连接Memcached 导致coredump问题 最近一项目压力比较大,502超多,PHP进程coredump比较频繁 于是学习了下coredump的调试 讲下PHP coredump的调试,coredump先准备代码比较好,因为PHP是开源的,这点好办。我的是存在/usr/local/src//usr/local/src/php-5.3.10/ 下...
概率性出现coredump (已解决) malloc(sizeof(char)4)在64位机上申请的内存大小不是32字节 for(i = 0; i < 26; i++){ pSubDomainBuffer = (char*)malloc(sizeof(char*) * 4); printf("pSubDomainBuffer[0] address:%p, size: %d\n", pSubDomainBuffer, sizeof(pSubDomainBuffer)); printf("...
其实这一步就是搜索我们 bt 命令显示的每个 frame 前面的对应的函数返回地址,然后定位到我们想要分析的 frame。再然后,我们就可以利用我们第二步所讲的函数参数使用分析方法来定位我们想要找的参数和变量了。 没有什么比一个有代表性的例子更能说明问题了。下面要介绍的一个例子是我们线上引擎出现的一个 coredump ...