将gdb与命令文件和参数一起使用

时间:2013-11-19 09:35:22

标签: bash gdb arguments

我正在尝试创建一个脚本:

  1. 启动gdb
  2. 设置替代路径
  3. 附加到流程PID
  4. 设置一些断点
  5. 浏览完interent后,我创建了一个名为'gdbscript'的脚本,其中包含:

    set substitue-path <from> <to>  
    show substitute-path  
    attach $1
    

    我通过以下方式调用此脚本:

    $ gdb -x gdbscript --args 4269
    

    这不起作用。关于如何使用gdb脚本并传递参数的任何想法?

    谢谢。

1 个答案:

答案 0 :(得分:0)

$1是不够的,这只是第一个参数-x

你需要的是"$@",它基本上是指所有参数,保留结构(不将单个参数"hello there"转换为hellothere。以下文字说明了这一点在行动:

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