我正在尝试创建一个脚本:
浏览完interent后,我创建了一个名为'gdbscript'的脚本,其中包含:
set substitue-path <from> <to>
show substitute-path
attach $1
我通过以下方式调用此脚本:
$ gdb -x gdbscript --args 4269
这不起作用。关于如何使用gdb脚本并传递参数的任何想法?
谢谢。
答案 0 :(得分:0)
$1
是不够的,这只是第一个参数-x
。
你需要的是"$@"
,它基本上是指所有参数,保留结构(不将单个参数"hello there"
转换为hello
和there
。以下文字说明了这一点在行动:
pax> cat qq.sh
echo set substitue-path FROM TO
echo show substitute-path
echo attach "$@"
pax> qq.sh -x gdbscript --args 4269 'hello there'
set substitue-path FROM TO
show substitute-path
attach -x gdbscript --args 4269 hello there
如果您在评论中指出,它是您想要的 last 参数而不是全部,您可以使用$BASH_ARGV
:
pax> cat qq.sh
echo set substitue-path FROM TO
echo show substitute-path
echo attach $BASH_ARGV
pax> ./qq.sh -x gdbscript --args 4269
set substitue-path FROM TO
show substitute-path
attach 4269