2009-12-16 4 views
7

J'ai un ensemble de points d'arrêt de base définis dans un fn setup défini par l'utilisateur dans mon .gdbinit. Donc, chaque fois que je lance gdb, je dois exécuter ce fn. pour définir tous mes points brk, avant que je commence à déboguer. Puis-je configurer mon .gdbinit pour qu'à chaque démarrage, il exécute d'abord mon fn setup défini par l'utilisateur?Comment faire gdb exécuter une fonction définie par l'utilisateur (définie dans .gdbinit) à chaque démarrage?

Répondre

9

simplement appeler par le nom de la fonction:

Mon .gdbinit:

define setup  
    echo Foobar\n 
end 

setup #This is the function call 

Et quand je le lance:

$ gdb 
GNU gdb Fedora (6.8-37.el5) 
Copyright (C) 2008 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-redhat-linux-gnu". 
Foobar 
(gdb) 
+0

ne fonctionne pas pour moi - donne cette erreur: .Aucun La table des symboles est chargée. Utilisez la commande "fichier". Aucune table de symboles n'est chargée. Utilisez la commande "fichier". Aucune table de symboles n'est chargée. Utilisez la commande "fichier". Aucune table de symboles n'est chargée. Utilisez la commande "fichier". /home/sbhowmick/.gdbinit:83: Erreur dans le fichier de commandes source: Aucun fichier exécutable spécifié. Utilisez la commande "fichier" ou "exec-file". Utilisation de la bibliothèque de l'hôte libthread_db "/lib/tls/libthread_db.so.1". J'utilise GNU gdb Red Hat Linux (6.3.0.0-1.138.el3rh) – TCSGrad

+0

Mon fichier .gdbinit ressemble à ceci: définir la configuration br FN1 br Fn2 fin définissent some_other_fn ... Ceci est dû au fait que le fichier binaire n'est pas chargé. Si vous définissez des points d'arrêt, le fichier binaire doit déjà être chargé lors du démarrage de la base de données, par exemple: – TCSGrad

+0

vous devez définir "fichier a.out" ou smtg comme cela dans votre fichier .gdbinit avant de définir les points d'arrêt ou d'exécuter "gdb a.out" ou plus. – Kimvais

Questions connexes