ubuntu配置核心转储文件路径并调试(nju ics PA)

  1. 调整 core pattern

编辑 /etc/sysctl.conf

sudo nano /etc/sysctl.conf

修改kernel.core_pattern

kernel.core_pattern=./core.%d.%f.%p.%t

# %d 可执行文件目录名
# %f 可执行文件名
# %p 进程 ID 
# %t 时间的十进制值 (2) 

可以自行修改格式,参考变量名和含义

使其生效

sudo sysctl -p
  1. 验证是否修改成功
cat /proc/sys/kernel/core_pattern

期望输出

./core.%d.%f.%p.%t

然后可以用core文件调试。

  1. 调试

启动nemu后自行触发一个错误,比如添加能够执行到的assert(0)断言错误,就可以core dump.

riscv32-nemu-interpreter: src/monitor/sdb/expr.c:139: make_token: Assertion `0' failed.
make: *** [~/ics2023/nemu/scripts/native.mk:38: run] Aborted (core dumped)

查看当前目录生成的core文件

调试

gdb ~/ics2023/nemu/build/riscv32-nemu-interpreter ./core.1.riscv32-nemu-interpreter.12539.1737786056
posted @ 2025-01-25 14:46  joki-sr  阅读(86)  评论(0)    收藏  举报