我正在尝试使用 GDB 从我的 Linux 机器上的一个进程转储内存,但我正在尝试使用脚本自动执行此操作。
到目前为止我一直在使用以下命令(示例):
$ gdb --pid [pid]
(gdb) dump memory dump_file 0x00621000 0x00622000
有没有办法只使用一个可以在 shell 脚本中实现的命令来执行此操作?或者有没有办法使用 shell 脚本执行 gdb 命令?
任何帮助将不胜感激 :)
答案1
在 /usr/local/bin 中创建一个文件并使其可执行:
#!/bin/sh
if [ $# -eq 3 ]; then
tf=$(tempfile)
echo -e "dump memory dump_file ${2} ${3}" > $tf
gdb -p $1 -x $tf
else
echo "Pass me a PID MEM_START MEM_END"
fi
如果你给它命名内存转储-gdb或者千年发展目标简而言之,您可以像这样使其可执行:
chmod 750 /usr/local/bin/mdg
然后你可以运行mdg 1234 0x00621000 0x00622000
“