Question

J'ai quelques problèmes avec l'un des projets sur lesquels je travaille sur les fenêtres (64 bits). Le programme parfois plantage, ne parfois pas, et je soupçonne que le problème soit lié à plusieurs temps d'exécution lié C. Comment puis-je détecter ce sur les fenêtres? J'ai essayé avec depends.exe, mais il n'a pas signalé le CRT

Était-ce utile?

La solution

Il est peu probable que vous puissiez réussir lier statiquement contre plusieurs bibliothèques d'exécution C - vous courriez dans de nombreux conflits de définition de symboles qui au moins produire des avertissements volumineux, et seulement un ingénieur téméraire serait les ignorer

.

Avec depends, je veillerais d'utiliser l'option de profilage dynamique, pour vérifier toutes les dépendances pour CRTLs dynamiques qu'ils chargent. Si ne tourne pas quoi que ce soit, je soupçonne que votre problème est ailleurs.

Je suppose que votre problème est ailleurs dans tous les cas, même si, comme DLL avec les API de niveau C ne devrait pas, en règle générale, compter sur l'état partagé dans le CRTL - le plus souvent l'allocateur de mémoire - et devrait avoir adopter une protocole standardisé pour la gestion de la mémoire croisée API, comme l'appelant-Alloue, callee utilisations, ou en passant callbacks d'allocation de mémoire, etc. en d'autres termes, CRTLs multiples dans le même processus est normalement pas un problème en raison de l'utilisation correcte d'une mémoire protocole de gestion.

Pour les défaillances transitoires, je soupçonne que la corruption multithreading ou tas.

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