2009-07-01 41 views
3

當我用gdb調試程序傳遞命令GDB,而且我希望有命令運行一個程序

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

的輸出作爲我的論點。我怎樣才能做到這一點?這樣的話,這個論點會非常靈活。

+0

您是否正在閱讀Hacking:剝削的藝術?我記得他用perl來粉碎堆棧。 – kmm 2009-08-25 23:30:29

回答

4

您可以使用運行命令並將其作爲參數傳遞給任何參數。

如果你想在上面嘗試:

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

爲命令,一旦你啓動gdb。

1

它看起來像你沒有正確啓動你的程序與gdb。假設你的程序是「a.out」,在bash中:

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

希望這對你有所幫助。

3

以上是稍微關閉,也不適用於我。如果您使用set命令ARGS,下面的工作(至少在我的系統):

set args "`perl -e 'print "A"x20;'`" 

像往常一樣,只需鍵入「運行」後,開始調試,以及適當的參數應該傳遞。

+0

一直在尋找這個小時,謝謝! – 1337holiday 2012-12-09 07:01:54