用 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/*

才能安全工作. (具体见这篇文档 )