在 CentOS 上“反汇编排查问题”一般分几种场景:
下面按实用流程给你一套在 CentOS 上常用的反汇编与排查方法。
yum install -y gdb binutils elfutils
常用工具:
gdb:调试 + 反汇编objdump:静态反汇编readelf:ELF 结构分析nm / strings:符号 & 字符串objdump -d ./app > app.asm
objdump -d ./app | grep -A 50 '<main>:'
objdump -S ./app
需要编译时加
-g
gdb ./app
disassemble main
或更详细的:
disassemble /m main
start
stepi
查看寄存器:
info registers
查看某地址:
x/10i $pc
ulimit -c unlimited
确认:
cat /proc/sys/kernel/core_pattern
gdb ./app core
bt
反汇编崩溃点:
disassemble
看寄存器:
info registers
nm ./app | grep func_name
readelf -h ./app
readelf -S ./app
strings ./app | less
✅ 段错误
bt 看调用栈disassemble 看崩溃指令✅ 死循环 / CPU 高
gdb attach pidbt + disassemble✅ 逻辑不对但无源码
objdump -dstrings00000000004005b6 <main>:
4005b6: push %rbp
4005b7: mov %rsp,%rbp
4005ba: mov $0x0,%eax
4005bf: pop %rbp
4005c0: ret
如果你有具体的报错信息 / core / 程序行为,可以直接贴出来,我可以帮你一步步反汇编定位。