2010-11-08 20 views
5

J'ai un processus .NET qui échoue parfois avec AccessViolationException dans le code natif d'une bibliothèque tierce.Comment créer un mini dump de processus lors d'un crash sans exécuter explicitement AdPlus sur Windows 7?

Je souhaite avoir un mini-vidage complet de la mémoire lorsque cela se produit. J'ai lu cette page - http://support.microsoft.com/kb/931673, la section "Collecter les dumps en mode utilisateur" et configuré le registre comme expliqué dans l'article. Cependant, lorsque le crash se produit, un très petit rapport est créé - aucun fichier * .mdmp n'est en vue.

Maintenant, je sais comment exécuter le processus à partir d'ADPLus ou comment l'attacher à un processus déjà en cours. Mais cela nécessite d'exécuter explicitement ADPLus.

Je me demandais comment puis-je configurer Windows pour exécuter ADPlus automatiquement, chaque fois que je commence le processus problématique, peu importe la façon dont il est commencé - à partir msbuild, double cliquée, à partir du script de la console, etc ...

Signification , lors de l'exécution aaaa.exe est remplacé par l'exécution de ADPlus avec certains indicateurs qui engendre aaaa.exe avec les options de ligne de commande respectives.

Je sais qu'il y a des drapeaux d'exécution d'image dans les fenêtres, qui font cela, mais je ne connais pas les détails.

Merci.

EDIT1

Il est important de conserver les paramètres de ligne de commande, donc si aaa.exe est exécuté avec un drapeau, puis, bien sûr, la même chose devrait être vrai lors de l'exécution aaa.exe du débogueur .

+0

Quel est l'avantage sur Windows Error Reporting (REH) configure d de prendre des décharges locales? http://msdn.microsoft.com/fr-fr/library/windows/desktop/bb787181%28v=vs.85%29.aspx –

+0

Aucun, mais la question a été posée il y a 3 ans, je ne connaissais probablement pas WER à l'époque. – mark

+0

@ThomasW. dans le lien que vous avez fourni: "Les applications qui effectuent leurs propres rapports de plantage personnalisés, y compris les applications .NET, ne sont pas prises en charge par cette fonctionnalité" –

Répondre

2

Peu importe, je l'ai trouvé.

  1. Créer une clé du nom du processus (comme aaa.exe) sous HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Options Image File Execution
  2. Ajouter une valeur de chaîne Debugger avec la valeur ADPlus -crash -mss YourSymbolCacheFolderPath -MiniOnSecond quiet -o YourDumpFolderPath -SC