Estoy usando Visual Studio 2010 Professional Edition y Windows Vista.Depuración de archivos de volcado en Visual Studio
En primer lugar, tengo este código. Como puede ver, ¡bloqueará el programa!
using System;
namespace Crash
{
class Program
{
static void Main(string[] args)
{
string a = null;
if (a.Length == 12)
{
// ^^ Crash
}
}
}
}
El programa se bloqueará en la instrucción if. Ahora, quiero descubrir que se bloqueó en esa declaración if.
Si "Comience sin depurar" desde Visual Studio, Crash.exe falla. Utiliza 1,356kb de memoria. Obtengo la opción Vista de Cerrar Programa/Depurar. Si elijo Debug, puedo abrir una nueva instancia de Visual Studio y me señala una NullReferenceException en la sentencia if. Esto es bueno.
Ahora déjenme asumir que se cuelga en otra computadora, y les pido que me den un archivo de volcado a través del Administrador de tareas. Es 54,567kb. ¡Por qué tan grande! ¡Es vasto! De todos modos, estoy menos interesado en que (un poco)
Si abro que volcado con WinDbg, me sale muy poco de utilidad para el ojo no entrenado:
Microsoft (R) Windows Debugger Version 6.12.0002.633 X86
Copyright (c) Microsoft Corporation. All rights reserved.
Loading Dump File [C:\Users\Richard\Desktop\Crash.DMP]
User Mini Dump File with Full Memory: Only application data is available
Symbol search path is: SRV*C:\SYMBOLS*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows Server 2008/Windows Vista Version 6002 (Service Pack 2) MP (4 procs) Free x86 compatible
Product: WinNt, suite: SingleUserTS Personal
Machine Name:
Debug session time: Sat Jan 15 11:07:36.000 2011 (UTC + 0:00)
System Uptime: 0 days 4:24:57.783
Process Uptime: 0 days 0:00:05.000
........................
eax=002afd40 ebx=77afa6b4 ecx=002afd48 edx=00000001 esi=001cdaa4 edi=00000000
eip=77bf5e74 esp=001cda5c ebp=001cdacc iopl=0 nv up ei ng nz ac pe cy
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000297
ntdll!KiFastSystemCallRet:
77bf5e74 c3 ret
Sin embargo, esto es de menor interés para mí . Por lo que puedo decir, necesito escribir comandos para obtener resultados útiles, y Visual Studio es mejor.
Así que lo abro con Visual Studio. Puedo elegir "Depurar solo con nativos", pero obtengo muchas cosas que significan algo para personas inteligentes como tú, ¡y no soy inteligente! Tengo estas dos pantallas:
Por lo tanto, mi pregunta:
¿Cómo demuestro Visual Studio para mi código fuente?
Además, ¿hay alguna manera de obtener un archivo de volcado más pequeño? Parece ridículamente grande, incluso después de la compresión. No entiendo por qué no podría haber uno que sea solo un poquito más grande que la huella del programa, y aún así tener una buena depuración, con el código fuente.
¿Está familiarizado con el depurador integrado en Visual Studio? En realidad, no leí hasta el final de su pregunta, pero no está claro por qué esto no funciona para usted. –
Honestamente, no estoy familiarizado con eso, por lo que vine aquí. Debe haber un botón de "Cargar fuente" en algún lugar, pero podría encontrarlo ... – niemiro