运行程序时将命令传递给gdb

运行程序时将命令传递给gdb,gdb,command,arguments,Gdb,Command,Arguments,我正在使用gdb调试一个程序,我想得到命令的输出 $(perl -e 'print "A"x20') 作为我的论点。我该怎么做?这样的话,论点将非常灵活 您可以使用run命令,然后将任何参数传递给它,这些参数将成为参数 如果您需要上述功能,请尝试: run `$(perl -e 'print "A"x20')` 作为一个命令,一旦你启动了gdb。看起来你没有用gdb正确启动你的程序。假设您的程序是“a.out”,在bash中: $gdb a.out (gdb)run `$(perl -e

我正在使用gdb调试一个程序,我想得到命令的输出

$(perl -e 'print "A"x20') 

作为我的论点。我该怎么做?这样的话,论点将非常灵活

您可以使用run命令,然后将任何参数传递给它,这些参数将成为参数

如果您需要上述功能,请尝试:

run `$(perl -e 'print "A"x20')`

作为一个命令,一旦你启动了gdb。

看起来你没有用gdb正确启动你的程序。假设您的程序是“a.out”,在bash中:

$gdb a.out
(gdb)run `$(perl -e 'print "A"x20')`

希望这对您有所帮助。

以上内容有点不对劲,对我也不起作用。如果使用set args命令,则以下操作将起作用(至少在我的系统上):


通常,只需在启动调试后键入“run”,就可以传递正确的参数

你在读《黑客:剥削的艺术》吗?我记得他用perl打破了堆栈。
set args "`perl -e 'print "A"x20;'`"