2010-09-24 54 views
1

Je développe une application console unix sous OS X. Je viens de mettre à jour trois bibliothèques statiquement liées (hdf5 et ses dépendants szip et z). Après une reconstruction de tous, l'application quitte le code 1 immédiatement après le lancement. Je ne suis pas au courant de la façon d'explorer le problème plus loin dans gdb parce que rien ne se trouve sur la pile au moment où l'application se termine. J'ai confirmé en utilisant otool -hv que toutes les bibliothèques sont construites pour l'architecture X86_64.mises à jour bibliothèques statiques, maintenant l'application se termine avant tout sur la pile. Comment déboguer

je peux, et ont, obtenu mon application fonctionne à nouveau en revenant aux binaires de bibliothèque précédents, mais je voudrais en savoir plus sur ce qui se passe au cours de la première étape de la course d'application qui est à l'origine pour sortir .

résultats GDB ci-dessous:

gdb ./build-deb/xapp/xapp 
GNU gdb 6.3.50-20050815 (Apple version gdb-1472) (Wed Jul 21 10:53:12 UTC 2010) 
Copyright 2004 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ..... done 

(gdb) run 
Starting program: /researchSoftware/app_git/src/build-deb/xapp/xapp 
Reading symbols for shared libraries .++++............................................................. done 

Program exited with code 01. 
(gdb) backtrace 
No stack. 

Répondre

0

Il ressemble à un code appelé exit (1) ou retourner 1 donc je commencer par mettre un point d'arrêt au début de principal et marcher jusqu'à ce que le gestionnaire de sortie est appelé, ou casser dans le gestionnaire de sortie.

+0

Je ne comprends pas pourquoi backtrace a signalé Aucune pile. Mais en fait, ce n'était pas un problème de bibliothèque. C'était une erreur de l'utilisateur. Mon code arrivait à un endroit tôt où il devrait légitimement appeler la base de sortie (1) sur mes arguments d'entrée. – NoahR