用 gdb 的 py-bt
来看一个 python 程序的调用栈是一个非常有用的工具.
然而今天在集群上尝试使用这个功能的时候发现了一些问题. 使用 debian 12 自带的 python3.11 时可以正常工作, 而使用 spack 安装的 python3.10 的时候就无法工作了. 最初怀疑 configure python 的时候没有带 --withdebug
, 于是重新装了一个 python 还是不管用. 然后在仔细观察输出的时候发现 gdb autoload 竟然还有 safe path 一说, 故需要在 .gdbinit
中加入
add-auto-load-safe-path /home/spack/*
才能安全工作. (具体见这篇文档 )