Question

J'ai un projet qui est un projet C ++ WIN32. J'ai trouvé un problème qui Certains symboles peuvent être reconnus par Windbg, mais d'autres non. Je ne savoir pourquoi. Les caractéristiques sont:

1) les deux sont une méthode C ++

2) les deux fonctions sont dans un fichier .cpp

3) les deux fonctions sont très proches dans le fichier source et aucune des deux les sont entourés par un #ifdef

4) J'ai utilisé dbh.exe pour vérifier le symbole, le symbole manquant dans le Windbg n'est pas non plus dans le fichier pdb.

Je devine si le symbole manquant peut être dû à l'héritage de la classe? S'il vous plaît suggérer, merci! Bin

Était-ce utile?

La solution

Si vous n'utilisez pas une fonction, tant que ce n'est pas une fonction virtuelle, il se peut que l'éditeur de liens ne le bloque pas. Les objets de données globaux non utilisés peuvent également être détruits.

Autres conseils

La fonction est-elle déjà appelée?

Il pourrait être utile de donner plus de détails sur les raisons pour lesquelles vous pensez que cela est "dû à l'héritage de la classe"

.

Il semble que le code source soit incompatible avec les fichiers PDB.

Peut-être que la fonction a été ajoutée après la génération du fichier PDB?

Vous pouvez le valider par:

  1. Ajoutez un point d'arrêt à une ligne de code que vous savez que sera exécuté.
  2. Parcourez le code et assurez-vous que le débogueur ne s'arrête pas sur des lignes de code vierges (cela impliquerait une incompatibilité entre le code et le fichier PDB).

La première chose que je suggérerais est de reconstruire le code source pour voir si cela résout le problème.

Si cela ne fonctionne pas, veuillez fournir davantage d'informations pour nous permettre de vous aider à diagnostiquer davantage ce problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top