Linux 从shell脚本中运行gdb命令

Linux 从shell脚本中运行gdb命令,linux,ubuntu,gdb,coredump,Linux,Ubuntu,Gdb,Coredump,我正在做一个简单的coredump分析器。我有一个核心文件和符号。现在我想创建一个实用程序,以便上传这两个文件,并显示stacktrace(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 我想

我正在做一个简单的coredump分析器。我有一个核心文件和符号。现在我想创建一个实用程序,以便上传这两个文件,并显示stacktrace(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”的输出保存到一个文件中。我如何才能做到这一点?

您想要:

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

对于发送命令,请查看以下帖子:对于问题的后半部分,您可以这样做。谢谢,如果我将其添加到shell脚本中,就可以了。但是如果我从PHPShell\uExec调用它,它就不起作用了。我问了另外一个问题:。谢谢你的帮助!我使用上面的方法调用了
反汇编fn
。但是,当二进制文件中有多个同名函数时,似乎只有一个被反汇编。是可以全部拆开,还是我应该根据原始地址拆开?