web-dev-qa-db-fra.com

Comment passer un argument en ligne de commande lors du démarrage de GDB sous Linux?

Je dois déboguer un programme qui contient des erreurs dans le cadre de mon travail. Cependant, je dois d'abord passer des arguments en ligne de commande afin de résoudre ce problème.

Je fais:

gdb -tui InsertionSortWithErrors

qui fonctionne, mais après cela, je ne sais pas comment passer des arguments. J'ai utilisé gdb -help et cela dit quelque chose à propos de --args que j'ai également essayé et qui n'a pas fonctionné.

Je veux pouvoir obtenir le débogueur + le GUI et passer des arguments de ligne de commande.

101
ShadyBears

Une fois que gdb démarre, vous pouvez exécuter le programme en utilisant "r args".

Donc, si vous utilisez votre code par:

$ executablefile arg1 arg2 arg3 

Déboguez-le sur gdb en:

$ gdb executablefile  
(gdb) r arg1 arg2 arg3
180
ldav1s

Essayer

gdb --args InsertionSortWithErrors arg1toinsort arg2toinsort
89

Une autre option, une fois dans le shell GDB, avant d’exécuter le programme, vous pouvez effectuer

(gdb) set args file1 file2

et l'inspecter avec:

(gdb) show args

J'utilise GDB7.1.1, comme --help montre:

gdb [options] --args executable-file [inferior-arguments ...]

IMHO, la commande est un peu peu intuitive au début.

19
Alex