2009-10-08 5 views
0

Ma DLL est utilisée par un module qui attrape toutes les exceptions de façon routinière et l'enregistre simplement dans un fichier.Comment faire pour obtenir un vidage sur incident sur Handled Exception?

Mon problème est qu'il y a une violation d'accès dans un site client qui est reproductible uniquement sur son ordinateur et je veux que ce client puisse générer un fichier de vidage pour ce problème.

J'ai essayé de générer un AV dans ma DLL et de générer un fichier de vidage en utilisant adplus mais pas de vidage où créé car l'AV est intercepté par le module qui utilise ma DLL.

Ma question est la suivante:

est-il un moyen de générer un fichier de vidage sur incident même exception gérée?

Merci,

Yann

+1

Windows droite? . –

Répondre

2

Utilisez ADPlus, vous pouvez en savoir plus sur la configuration de ADPlus here (minidumps des exceptions spécifiques)

Votre fichier de configuration ressemble à quelque chose comme ceci:

<ADPlus> 
    <Settings> 
    <RunMode>CRASH</RunMode> 
    <Option>Quiet</Option> 
    </Settings> 
    <Exceptions> 
    <Config> 
     <Code>AllExceptions</Code> 
     <Actions1>FullDump</Actions1> 
    </Config> 
    </Exceptions> 
</ADPlus> 
+0

Merci. je ne savais rien sur le fichier de configuration adplus, il semble très utile. – Yann

1

Pour Windows Vista SP1 et versions ultérieures, le service Windows Error Reporting peut être configuré pour produire vidages chaque fois qu'une application se bloque:

Sous la clé de Registre:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ Windows Error Reporting \ LocalDumps]

Définir des valeurs:

  • DumpFolder (REG_EXPAND_SZ) - où les fichiers de vidage sont stockés
  • DumpType (REG_DWORD) - 2 pour le vidage complet, 1 pour le mini dump

Cela fonctionne pour les programmes 32 bits et 64 bits. Voir http://msdn.microsoft.com/en-us/library/bb787181.aspx

+0

Le problème que je vois ici est qu'une exception handeled ne bloque pas le processus. – uli78

Questions connexes