*1.1 背景 *
有时程序发生coredump时,bt查看堆栈信息时,看不到symbols,看到的是数字+?号,而且还是加上了-g -O0选项了,真是郁闷~~ 如下图:
人为制造coredump,31行对空指针赋值,产生coredump
1.2 gdb a.out core.11246
在地址0x00000000004008ce处发生coredump
*1.3 对可执行程序进行反汇编 *
objdump -d a.out > a.asm
搜索地址 “4008ce”
当赋值0x23时发生coredump
对应31行代码
1.4 总结
实际中并没有这么顺,要花点心思研究一下汇编代码,结合一些工具来分析。