【问题标题】:Run gdb command from within shell script从 shell 脚本中运行 gdb 命令
【发布时间】:2018-02-09 07:46:19
【问题描述】:

我正在制作一个简单的核心转储分析器。我有一个核心文件和符号。现在我想创建一个实用程序,以便可以上传这两个文件,并显示堆栈跟踪(bt)。 我执行一个shell脚本:

gzip -d coredump.gz
tar xvf symbols.tar.gz
gdb program
#Now at this point I want to send gdb commands one at a time. Like:
core-file corefile
echo bt

我想将“bt”的输出保存到文件中。我该怎么做?

【问题讨论】:

标签: linux ubuntu gdb coredump


【解决方案1】:

你想要:

rm -f gdb.txt
gdb -ex 'set logging on' -ex 'where' program corefile
# GDB output is now in gdb.txt

【讨论】:

  • 谢谢,如果我将它添加到 shell 脚本中就可以了。但是如果我从 php shell_exec 调用它,它就不起作用。我问了另一个单独的问题:*.com/questions/48715364/…。感谢您的帮助!
  • 我使用上面的方法调用了disassemble fn。但似乎当二进制文件中有多个同名函数时,只有一个被反汇编。是否可以全部反汇编,或者我应该根据原始地址进行反汇编?
最近更新 更多