我正在尝试编写一个脚本来分析核心转储。到目前为止,我已经想出了这个剧本。
#!/bin/bash
#
# A script to extract core-file informations
#
#Binary image
binimg=$1
# Today and yesterdays cores
core=$2
gdblogfile="$core-gdb.log"
rm -f $gdblogfile
gdb -batch \
-ex "set logging file $gdblogfile" \
-ex "set logging on" \
-ex "set pagination off" \
-ex "file $binimg" \
-ex "core-file $core" \
-ex "bt" \
-ex "quit"当我尝试执行它时,我会得到以下错误:文件“退出”不存在或者不是一个常规文件。
你能告诉我我做错了什么吗?
发布于 2014-01-05 22:21:55
您的gdb版本可能有问题(您使用的是哪个版本)?我可以在gdb 6.3中复制您的错误,但不能用7.6。无论如何,似乎gdb,即使您已经在批处理模式下启动它,仍然认为最后一个参数"quit"是图像的文件名(它试图加载它,并抱怨找不到它)。因此,要满足gdb的要求,只需像通常那样传入图像和核心文件(并移除"ex file"和"ex core-file"参数)。看看这样的东西对你有用吗:
gdb -batch \
-ex "set logging file $gdblogfile" \
-ex "set logging on" \
-ex "set pagination off" \
-ex bt \
-ex quit \
"$binimg" \
"$core"https://stackoverflow.com/questions/20939627
复制相似问题