J'analyser un dump de mémoire d'un processus de travail IIS s'exécutant sur un Windows Server 2008 sur mon poste de travail Windows 8. Le vidage est un mini-vidage pris en utilisant le gestionnaire de tâches. Les versions du Framework sur le serveur et le poste de travail diffèrent: Serveur où le dump a été pris: 4.0.30319.296 J'ai copié sos. dll et mscordacwks. dll du serveur à mon poste de travail dans un répertoire dédié, puis ouvert le dump dans WinDbg. Puis je charge le sos. dll copié du serveur: Cela me permet de lister les threads en utilisant des threads ou regarder des piles en utilisant clrstack. Mais quand j'utilise pe ou clrstack, je reçois un avertissement de mésappariement de version: Alors que je pouvais voir les piles qui m'intéressaient, Im confus sur la version CLR dans l'avertissement: Où est-ce que cette version vient Le dump indique la version 4.0.30319.1 quand j'exécute Mais 4.0.30319.1 est utilisé nulle part dans ce cas, ni sur serveur ni poste de travail. Ou est-ce que je manque quelque chose en plus, WinDbg charge les fichiers de symbole pour mscordacwksAMD64AMD644.0.30319.01.dll à mon répertoire de symboles. Sortie de. cordll: J'ai aussi essayé de copier clr. dll du serveur à ma station de travail et de charger l'exécution en utilisant. cordll, mais sans succès: Quelqu'un peut-il jeter un peu de lumière sur ce problème de versioning Est-ce quelque peu lié au type de dump usedIm En essayant d'utiliser WinDBG pour analyser un dump d'écrasement d'une de nos machines de production. La racine de mon problème semble être que j'ai une construction différente du cadre de la machine de production, mais je ne sais pas comment résoudre le problème. Quand je tourne sym bruyant et puis exécuter dlk (de SOSEX), je reçois l'erreur suivante car il essaie de trouver la dll mscordacwks J'ai pris le mscorwks. dll, mscordawks. dll et sos. dll de la machine de production et les a placés dans C: Mysymbols. Il semble que WinDBG est à la recherche d'un dll à l'intérieur de la dll mscorwks. A demandé Feb 3 12 à 14:05 Et puis fondamentalement essayer chaque incarnation de symboles en mouvement autour que je pouvais, j'ai trouvé que la seule façon que je pourrais obtenir ce travail était de copier le mscorwks. dll, mscordawks. dll et sos. dll de la Machine de production dans C: WINDOWSMicrosoftFrameworkv2.0.50727 Il semble que WinDBG doesnt faire si bien avec plusieurs versions de la même DLL. Peut-être que j'ai fait quelque chose de mal, mais copier les dll directement dans le répertoire Framework au moins m'a mis en place et en cours d'exécution. Il n'est pas à cause de WinDbg ne peut pas gérer plusieurs versions de mscordacwks. dll, mais il utilise l'algorithme by-design pour les interroger (comme il a tant de versions corrigées), qui est le style que vous adaptez À activement. Une fois que vous vous habituerez à ce fait, vous ne serez pas confronté à beaucoup de problèmes à l'avenir. Ndash Lex Li Mar 5 12 à 6:35 En plus de la réponse CodeFoxs, vous devez mettre le répertoire où le mscorwks. dll (ou clr. dll si vous utilisez 4) dans le chemin d'accès au fichier image dans WinDbg (hors du menu Fichier ).
No comments:
Post a Comment