.net - vadin - crematoria(extra effects)
Cómo usar Deblector? (2)
Estoy trabajando con un marco de terceros, y el código es bastante malo, y estoy recibiendo excepciones que no puedo descifrar. Pude descompilar usando .NET Reflector , y ahora estoy tratando de depurar usando Deblector , pero ni siquiera puedo descifrar cómo obtener un conjunto de puntos de corte. ¿Por qué no hay documentación para esta herramienta?
No hay nada disponible sobre cómo usarlo. La ayuda incorporada simplemente da una lista de comandos, que entiendo muy bien, ya que son los comandos de depuración estándar ... pero no puedo encontrar la manera de hacerlo funcionar para poder pasar el código y necesito examinar variables también
He estado buscando en Google durante mucho tiempo y todo lo que puedo encontrar es blogs que dicen lo maravillosa que es esta herramienta. Bueno, estoy seguro de que sería genial si pudiera hacerlo funcionar. ¿Dónde está la documentación o cómo configuro un punto de interrupción?
Puedo hacer que se adjunte a mi proceso, pero no puedo pausar ni nada, y no se rompe cuando ocurre la excepción, aunque he activado esa opción.
En serio ... deberíamos hacer algo de documentación: los publicaré en algún lugar que Google pueda alcanzar.
Hay Reflector Pro ahora, que hace precisamente eso. Descompila los ensamblados administrados a C # o VB.NET, y crea los PDB necesarios. Luego puede establecer puntos de interrupción e ingresar en cualquier ensamblaje administrado que desee.
Tal vez esto te ayude:
En primer lugar, estoy usando DeblectorAddin-1.01-Alpha de (no sé si funciona así en versiones anteriores también) de http://www.codeplex.com/deblector .
Con esta versión, es bastante simple con el siguiente procedimiento:
Adjuntar a un proceso
- Con el comando a [ttach] en la línea de comando: a <pid> .
- Usando el botón de adjuntar en la barra de herramientas (ventana con un engranaje en ella).
Si el archivo adjunto fue un éxito (se ve esto en la consola, se activó con Herramientas-> Deblector) todos los ensamblados a los que se hace referencia deben cargarse.
Establecer un punto de interrupción (debe haber detenido el programa para establecer un punto de interrupción):
- Usando el comando b [reak] : ej. B <Namespace.Class.Function> - hay más opciones disponibles, use help b para eso.
- Mucho más simple: use el botón de Salto (o F9 ) y seleccione una fila en la vista IL de Deblector.
Notas de uso adicionales:
Línea de comando de Deblector:
La línea de comando no responderá si actualmente está conectado a un proceso y se está ejecutando, debe detenerse primero o no responderá correctamente.
Para plataformas de 64 bits:
La aplicación debe estar configurada para ejecutarse como una aplicación de 32 bits o no se puede adjuntar.
En Visual Studio: Proyecto -> Propiedades -> Objetivo de plataforma de compilación: x86
Con la herramienta corflags : esto debe instalarse con Visual Studio (use el símbolo del sistema de Visual Studio).
To set 32-bit mode: corflags <ProgramName> /32BIT+
To unset it: corflags <ProgramName> /32BIT-
Para encontrar la identificación del proceso y verificar si un programa se ejecuta en modo de 32 o 64 bits :
Process Explorer es muy útil para eso.