2009-07-01 11 views
3

ich gdb bin mit einem Programm zu debuggen, und ich mag die Ausgabe des Befehls habenvorbei einen Befehl an GDB, wenn ein Programm läuft

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

als mein Argument. Wie kann ich das machen? Auf diese Weise wäre das Argument sehr flexibel.

+0

Lesen Sie das Hacking: Die Kunst der Ausbeutung? Ich erinnere mich, dass er Perl benutzte, um den Stapel zu zerschlagen. – kmm

Antwort

4

Sie können den Befehl run verwenden und danach Parameter übergeben, die Argumente sind.

Wenn Sie die oben wollen, versuchen Sie:

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

als Befehl, wenn Sie gdb starten.

1

Es sieht so aus, als ob Sie Ihr Programm nicht ordnungsgemäß mit gdb gestartet haben. Angenommen, Ihr Programm ist "a.out", in bash:

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

Hoffe das hilft Ihnen.

3

Das obige ist etwas aus und würde auch nicht für mich arbeiten. Wenn Sie den Satz args Befehl verwenden, funktioniert die folgende (zumindest auf meinem System):

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

Wie üblich, geben Sie einfach ‚run‘ nach Debuggen zu starten, und das richtige Argument übergeben werden soll.

+0

seit Stunden dafür gesucht, danke! – 1337holiday

Verwandte Themen