J'ai reçu des fichiers de vidage (.mdmp et .hdmp) à partir d'un plantage de notre logiciel en raison d'une fuite de mémoire (qui était sur un autre ordinateur). Le logiciel se compose d'un fichier exe et de nombreux fichiers .dll. J'ai le code source (partie C++, partie delphi) mais je n'ai pas les fichiers .pdb pour cette construction exacte.Windows fichier de vidage (hdmp) - information sans fichiers pdb
Je peux ouvrir le mdmp/hdmp dans Visual Studio ou dans WinDbg. Mais je ne gagne pas beaucoup d'informations parce que je n'ai pas les fichiers .pdb. Depuis le fichier hdmp est ~ 4gb gros, j'espère que j'ai déjà beaucoup d'informations, même sans les fichiers pdb. Mais je ne suis pas une trace de pile vraiment d'autres informations ou USEFULL, par exemple lorsque j'utilise la commande
!analyze -v
Est-il possible d'une certaine manière d'obtenir de meilleurs résultats? Puis-je savoir d'une manière ou d'une autre combien de mémoire chaque DLL utilise (ou plutôt quels processus sont connectés à des DLLs spécifiques)? Puisque j'ai le code source, puis-je utiliser des fichiers pdb nouvellement générés (pour les modules C++)? Même s'ils ne sont pas précis à 100%. Ce serait déjà une aide précieuse, pour savoir quel module a causé la fuite de mémoire!
Voir [Cette question] (https://stackoverflow.com/questions/21886338/crash-dump-windbg-force -pdb-files-to-match-doesnt-travail). –
"Processus"? Une décharge est seulement pour un processus. En outre, la mémoire est allouée par processus, pas par DLL. –
Dites que vous avez construit des PDB, comment trouvez-vous qu'ils sont précis à 99% ou seulement 1% précis? Quelle version du compilateur avez-vous utilisée, quel environnement, quelle source? Changer n'importe lequel d'entre eux pourrait changer le résultat. –