用GDB调试Emacs的经验

楔子

这两天吃不香 睡不好 因为Emacs一直崩溃 我也能稳定的重现 也试着加了几条判断让它不崩溃 但总是找不到原因 尝试退回到之前的版本 重现生成了一下 竟然奇迹般的好了 枉费了我调试半天 😟

总结一下用GDB调试Emacs的东西罢 我感觉互联网上这方面的中文资料几乎没有

构建调试版

这是最重要的 对于GDB这种源码级调试来说 优化过的版本几乎无法调试 这点和汇编级的调试器不一样 用那些调试器我能调试优化后的版本 但用GDB几乎看不懂 方法是这样的

1
2
CFLAGS='-O0 -g3 -pipe' ./configure
make

-O0取消优化 -g3加入调试信息

用GDB运行Emacs

命令是

1
2
cd /path/to/emacs/source/src
gdb --args ./emacs -Q

注意要在src目录里才能运行哦

待续。。。