Programmation en C: Comment utiliser gdb avec Makefile et les arguments de ligne de commande?

Pour créer le .hors de l'exécutable, j'ai d'entrée:

$: make
$: myprogram.out name.ged

Mon programme intègre un argument de ligne de commande, ainsi que le "nom.ged".

Chaque fois que j'ai lancer gdb après l'obtention d'un segmentation fault (core dumped), je suis entrée:

$: gdb a.out core
(gdb): bt

J'utilise ensuite la trace de la commande, et gdb retourne:

#0 0x4a145155 in ?? ()
#1 0x08a16ce0 in ?? ()

J'ai même essayé d'utiliser la commande t déplacer vers le haut de la pile, mais toujours pas de chance. Je ne peux pas dire la ligne dans mon programme me donne un seg fault. gdb travaille avec mes autres programmes qui ne visent pas un Makefile et les arguments de la commande, alors je me demandais si mes commandes sont incorrectes.

Vous avez besoin de compiler avec la -g drapeau. Comme vous n'avez pas posté le Makefile je ne peux pas vous donner de l'aide.
La commande gcc-g myprogram.le nom.la ged?
Dans le fichier il y a une commande pour compiler le code (gcc ...) Qui commande les besoins de l'-g drapeau pour ajouter des informations supplémentaires pour gdb pour travailler efficacement.
Aussi, si le programme est myprogram.out, il devrait être gdb myprogram.out core pas gdb a.out core. Il pourrait être n'importe quel vieux a.out assis là.

OriginalL'auteur Bonnie | 2013-03-07