J'ai débogué dans GDB (code C). Le problème est que si j'exécute mon application et si elle plante, le contrôle revient à main() (l'application redémarre). Par conséquent, n'aura aucune idée de l'endroit où il s'est écrasé. Je passe donc beaucoup de temps à parcourir chaque fonction.Aide pour la journalisation de plantage de débogage gdb
Je voudrais savoir s'il y a de toute façon un journal qui peut générer la dernière ligne d'exécution avant le crash. Ceci est juste mon hypothèse, s'il y a une autre façon plus simple de le faire s'il vous plaît faites le moi savoir, cela me ferait gagner beaucoup de temps!
De même si le gdb génère un journal où serait le chemin?
Merci d'avance.
Pouvez-vous définir "crash"? S'il y a un signal non géré (par exemple SIGSEGV) GDB devrait l'intercepter et s'arrêter immédiatement, mais il semble que ce n'est pas ce qui se passe, donc vous devez "crasher" d'une manière différente –
GDB peut gérer les commandes prédéfinies si vous le pouvez. Ou, si par log vous voulez dire une trace de pile, regardez http://tlug.up.ac.za/wiki/index.php/Obtaining_a_stack_trace_in_C_upon_SIGSEGV. Il montre comment générer une trace de pile sur SIGSEGV. Si vous connaissez le signal qui provoque votre crash, générez la trace de la pile lors de la réception de ce signal au lieu de SIGSEGV. – vpit3833
Le contrôle retournant à main() et le redémarrage de l'application ne sont pas vraiment la même chose - redémarre-t-il réellement à la ligne 1 de main(), ou revient-il à la ligne après un appel de fonction? – Cascabel