gdb 异步调试
使用如下.gdbinit 文件
1 | set target-async 1 |
GDB 加载脚本条件
路径完全匹配(核心条件)
GDB 的自动加载逻辑非常死板,它会根据你的程序链接的 libstdc++.so.6 的真实物理路径来拼接查找路径。
如果你的程序链接的是 /usr/lib64/libstdc++.so.6,那么 GDB 会尝试在以下位置查找: [auto-load 根目录] + [库的绝对路径] + [-gdb.py 脚本]
即:/usr/share/gdb/auto-load + /usr/lib64/libstdc++.so.6 + -gdb.py 也就是你找到的:/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6-gdb.py。必须开启 safe-path 权限
即使文件位置对了,GDB 为了安全默认也是不运行它的。你需要给它“授权”。1
set auto-load safe-path /
Check script load status
start gdb:
1 | info auto-load python-scripts |