2009-10-25 12 views
10

Yo uso Jochen Kalmbach's StackWalker class from CodeProject, para producir un stacktrace cuando ocurre una excepción en mi DLL.¿Está incorporado DbgHelp.dll en Windows? ¿Puedo confiar en que esté allí?

Se basa en Dbghelp.dll

está integrado en Dbghelp.dll a Windows Vista, WS2008, Windows 7?

Conozco The Debugging Tools for Windows de Microsoft, y soy consciente de que DbgHelp.dll se incluye en ese paquete. Pero también encontré DbgHelp.dll en% windir% \ system32 en mi máquina.


Si no se instala por defecto, hay una manera para mí para redistribuirlo con versiones de depuración de mi DLL?

Respuesta

10

Microsoft says:

"La biblioteca DbgHelp es implementado por Dbghelp.dll Esta DLL está incluido en el sistema operativo."

Tenga en cuenta que la versión actualmente incluida con Debugging Tools para Windows puede no ser la misma versión que se incluye con el sistema operativo.

+0

Esto es parcialmente cierto, por lo que he podido decir, no viene incluido con NT 4/Windows 2000, pero desde XP/Server 2003 no he tenido ningún problema con los archivos DLL que faltan, pero vale la pena recordarlo. Si falta, siempre puede descargar e instalar las herramientas de depuración en esa máquina y funcionará. Esto es lo que tuve que hacer en el pasado con Windows 2000 para depurar problemas menores. –

2

En general, es mejor enviar dbghelp.dll con su aplicación para asegurarse de obtener la versión que espera de todos modos. Creo que es redistribuible por esta misma razón.

Sin embargo, vale la pena recordar que la biblioteca de tiempo de ejecución de depuración no es redistribuible. Sus compilaciones de depuración deben seguir siendo (en términos de VC++) compilaciones de "liberación".

+0

Todavía depende de msvcrt.dll (sin indicación de versión en el nombre de archivo), por lo que no es tan distribuible como en "independiente". – Janosch

+0

Tenga en cuenta que, según http://go.microsoft.com/fwlink/?LinkId=294840, no puede enviar los archivos DLL 'dbghelp' & co en sí, sino el' .msi', "sin modificar, como un paquete" que incluye dichas DLL: 'Archivos de programa \ Windows Kits \ 8.1 \ Depuradores \ Redist \ X86 Debuggers and Tools-x86_en-us.msi Archivos de programa \ Windows Kits \ 8.1 \ Debuggers \ Redist \ X64 Debuggers and Tools-x64_en-us. msi'. – vladr

Cuestiones relacionadas