gdb 如何指定脚本执行

背景

有些分析core的场景,需要避免收到执行 gdb 命令,自动gdb 出堆栈然后分析输出的内容。怎么办?

示例

[root@qd /home/ebs/dataserver]$指定辩护人 cat gd.gdb
thread 15
bt
set print elements 0
p *(kunlun::dataserver::BlockManag执行董事er*)(g_server->b_manager_)
p *(kunlun::dataserver::StoreManager*)(g_server->书;s_manager_)
gdb -q --batch -x gd.gdb ./bin/server 4984  2>&1 | tee -a 4984_mygdb.output

然后参考下面的命令解析堆栈, 如果堆栈里有vector 打印出来的话:

cat mygdb.output  | awk -F"]" '{print $1}' | awk -F"[" '{print $2}' | sort >> sm.list

注意上面用指定监护人到了下面的gdb脚本

https://github执行.com/mzlogin/config-files/blob/master/.gdbinit