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
标签:脚本,dataserver,指定,server,堆栈,gdb,gd,print 来源: https://blog.51cto.com/xiamachao/2802387