2009-07-01 7 views
3

J'utilise gdb pour déboguer un programme, et je veux avoir la sortie de la commandepassant une commande gdb lors de l'exécution d'un programme

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

comme mon argument. Comment puis je faire ça? De cette façon, l'argument serait très flexible.

+0

Lisez-vous le Hacking: L'art de l'exploitation? Je me souviens qu'il a utilisé perl pour écraser la pile. – kmm

Répondre

4

Vous pouvez utiliser la commande run et lui passer tous les paramètres qui seront des arguments.

Si vous voulez ci-dessus, essayez:

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

comme une commande une fois que vous commencez à gdb.

1

Il semblerait que vous n'ayez pas démarré correctement votre programme avec gdb. Supposons que votre programme soit "a.out", en bash:

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

Espérons que cela vous aide.

3

Ce qui précède est légèrement éteint et ne fonctionnerait pas pour moi non plus. Si vous utilisez la commande args ensemble, ce qui suit travailler (au moins sur mon système):

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

Comme d'habitude, il suffit de taper « run » après pour démarrer le débogage, et l'argument approprié devrait être adopté.

+0

été la recherche d'heures pour cela, merci! – 1337holiday