2009-06-26 5 views
0

J'ai quelques plantages dans un code C, construit sans symboles de débogage, et je n'ai qu'un backtrace avec les adresses absolues de la pile d'appels. C'est sur Windows (64 bits). Je suis plus un mec linux, donc je suis un peu perdu sur la façon de se pencher sur le débogage - sous Linux, je courrais le code sous valgrind, mais AFAIK, aucun outil n'existe pour Windows 64 bits.Débogage sans débogueur

Quelles sont mes options? Je peux modifier le code C à volonté, mais je ne peux pas le construire avec les symboles de débogage. La raison pour laquelle je ne peux pas construire avec des symboles de débogage est que mon binaire n'est pas construit avec des outils MS (il est construit avec mingw-w64).

Répondre

1

Vous devez générer un fichier de carte. Un fichier de carte répertorie les adresses de divers symboles publics (fonctions, globales, etc.) dans votre exécutable/binaire. Habituellement, il peut être généré par un passage sur un commutateur spécial à l'éditeur de liens.

MSDN reference for /MAP

+0

Je n'utilise pas les compilateurs MS, donc je ne peux pas utiliser ceci - J'ai édité ma question pour rendre ceci plus clair –

+0

Quel compilateur utilisez-vous alors? Les fichiers cartographiques sont un concept (presque) universel. –

+1

David utilise MinGW, et selon la FAQ MinGW, il peut produire des fichiers cartographiques: http://www.cs.colorado.edu/~main/cs1300/doc/mingwfaq.html#debugging – RichieHindle

0

Vous devriez probablement utiliser la version ming de GDB, qui peut comprendre les symboles incorporés dans le binaire.

Questions connexes