gdb 如何指定脚本执行

背景

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

示例

[root@qd /home/ebs/dataserver]$ cat gd.gdb
thread 15
bt
set print elements 0
p *(kunlun::dataserver::BlockManager*)(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
上一篇:如何在不使用命名空间的情况下在PHP中使用相同的命名类?


下一篇:带有多个名称空间的LINQ to XML