SIGSEGV 通常由非法内存访问触发。通过 core_pattern 保存 core 文件并用 gdb 结合调试符号回栈,可精确定位崩溃指令地址与调用栈。
![]()
一、启用 core dump 并分析
bash
# 临时开启 core 生成,文件命名带 pid
ulimit -c unlimited
sysctl -w kernel.core_pattern=/var/core/core.%e.%p
# 使用 gdb 分析 core 文件
gdb /usr/bin/myapp /var/core/core.myapp.12345
(gdb) bt full
(gdb) info registers
(gdb) x/16i $pc