2010-09-09 5 views
1

J'ai un VC++ exe en Remote (client fin) .Ils sont repoterd que crash est survenu.Comment identifier la cause du problème sans utiliser le code source et je veux utiliser uniquement le fichier .pdb pour analyser .Veuillez Dites-moi comment utiliser le fichier .pdb pour le débogage.Débogage en vC++

Répondre

0

Dans un premier temps obtenir le vidage sur incident en utilisant WinDBg ou DebugDiag

S'il vous plaît vérifier avec le client s'il est autorisé à installer les outils mentionnés ci-dessus et obtenir la décharge.

Demandez au client d'envoyer la sauvegarde pour le crash de l'exe en question qui se bloque. Ensuite, analysez le fichier de vidage en utilisant windbg ou debugdiag dans votre machine en utilisant le bon pdb.

Veuillez indiquer si d'autres informations sont requises. Une aide minimale pour l'analyse de la sauvegarde sera donnée dans les fichiers d'aide de windbg ou debugdiag lui-même.

+0

J'ai installé Windbg dans mon système et aussi j'ai .pdb en mode release maintenant j'ai essayé de charger le fichier .pdb via windbg mais je reçois une erreur dit "Erreur Win32 0n87 Le paramètre est incorrect". – user443088

+0

N'essayez pas de charger le pdb. Au lieu de cela, cliquez sur Fichier dans windbg et sélectionnez Ouvrir un vidage sur incident et charger le crashdump. C'est la chose que vous devez analyser. Dans le menu Fichier du chemin du symbole, indiquez l'emplacement de votre pdb et rechargez la sauvegarde. – ckv

+0

Quelle est la taille du fichier de vidage que vous essayez de charger? AFAIK erreur 0n87 peut être le résultat de fichiers de vidage trop volumineux (par exemple, vous avez trop peu de mémoire pour le gérer). – larsw

0

Vous pouvez également ouvrir des fichiers de vidage et mini-dump dans Visual Studio (Ouvrez-les avec Open Project ... et pointez sur le fichier dmp.) Si vous avez des fichiers pdb correctement indexés, vous pouvez souvent obtenir un pile d'appel appropriée qui vous indiquera où l'erreur s'est produite.

Vous devriez également vérifier Windows Error Reporting. S'il s'agit d'un logiciel disponible dans le commerce, je vous suggère de signer vos fichiers binaires avant le déploiement. Vous pouvez ensuite demander aux clients de soumettre des erreurs à Microsoft via leur service standard de rapport d'erreurs Windows. De l'autre côté, vous pouvez vous inscrire sur leur portail WER et vous identifier avec le certificat avec lequel vous avez signé les binaires. À partir du portail, vous pouvez obtenir des statistiques d'erreur et télécharger des fichiers de vidage spécifiques. Si le logiciel s'exécute dans un environnement isolé - un domaine privé, vous pouvez extraire une stratégie globale personnalisée dans votre répertoire actif, qui configure WER pour soumettre des fichiers de vidage vers un partage Windows spécifique dans votre domaine où les développeurs peuvent collecter leur.

Hope this helps,

--larsw

+0

ont installé Windbg dans mon système et aussi j'ai fichier .pdb en mode de libération maintenant j'ai essayé de charger le fichier .pdb via windbg mais je reçois une erreur dit "erreur Win32 0n87 Le paramétrage est incorrect" – user443088

0

Voici les premières étapes à suivre:

Sur la machine client:

a. installez windbg. Cela peut être téléchargé à partir du site Web de Microsoft.
b. Une fois installé, inscrivez le débogueur juste à temps [windbg -l].
c. exécuter l'application qui provoque le crash.
d. le windbg s'ouvrira automatiquement en cas de crash.
e. enregistrer le fichier de vidage.

Sur votre machine:

a. ouvrez le vidage sur incident en utilisant windbg.
b. définissez les fichiers pdb et les fichiers sources sur votre machine dans windbg.
c. Vous pouvez générer des pdb en utilisant les propriétés du projet dans Visual Studio.

Plus de détails j'ai trouvé dans: http://kmdarshan.com/blog/2011/06/29/windows-debugging-using-windbg/