2011-03-29 5 views
0

J'ai un example.cc programme court comme suit:C++ exception throw, faute de segmentation

#include <stdio.h> 
int main() 
{ 
    try { 
     throw 999; 
    } catch (int i) { 
    printf("Catch i:%d", i); 
    } 
} 

Si je compile indépendamment de ce programme, il fonctionne bien, Cependant, quand je créer un lien avec un autre fichier objet, il Échec, signaler une erreur de segmentation, je ne sais pas pourquoi ..

+5

Eh bien, quel est le fichier objet? – GManNickG

+3

@GMan: 'static int * f() {return 0; } statique int globalx = * f(); ', bien sûr :) –

+0

Il est difficile de conclure quoi que ce soit, sauf si nous savons ce qui se passe dans l'autre fichier objet que vous liez. S'il vous plaît poster le code source ou un jist de ce qui se passe dans le fichier objet et nous pouvons vous aider. –

Répondre

1

Pourquoi ne pas regarder dans le débogueur et voir où le segfault se produit?

Votre échantillon minimal est bon. Je n'y vois rien qui puisse causer des problèmes. Il est clair que votre autre fichier objet est en faute. C'est du C++, il est donc tout à fait possible que des objets statiques à l'intérieur de l'autre fichier objet soient construits au démarrage ou détruits lors de la terminaison du programme et causent des problèmes.