Utilizzo Visual Studio 2010 Professional Edition e Windows Vista.Debug dei file di dump in Visual Studio
In primo luogo, ho questo codice. Come puoi vedere, il programma si bloccherà!
using System;
namespace Crash
{
class Program
{
static void Main(string[] args)
{
string a = null;
if (a.Length == 12)
{
// ^^ Crash
}
}
}
}
Il programma si bloccherà sulla dichiarazione if. Ora, voglio scoprire che si è schiantato su quella dichiarazione if.
Se "Avvio senza debug" da Visual Studio, Crash.exe si arresta in modo anomalo. Usa 1,356kb di memoria. Ottengo l'opzione Vista di Close Program/Debug. Se scelgo Debug, posso aprire una nuova istanza di Visual Studio e mi indirizza a una NullReferenceException sull'istruzione if. Questo è buono.
Ora supponiamo che si arresti in modo anomalo su un altro computer e li induco a darmi un file di dump tramite Task Manager. È 54,567kb. Perché così grande! È vasto! Comunque, io sono meno interessato a che (un po ')
Se apro quella discarica con Windbg, ottengo molto poco utile al mio occhio inesperto:
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
Tuttavia, questo è di minore interesse per me . Per quanto posso dire, ho bisogno di scrivere comandi per ottenere un utile output e Visual Studio è migliore.
Così lo apro con Visual Studio. Posso scegliere "Debug with Native Only", ma ho un sacco di cose che significano qualcosa per persone intelligenti come te, e io non sono intelligente! Ottengo questi due schermi:
Quindi, la mia domanda:
Come posso mostrare Visual Studio per il mio codice sorgente?
Inoltre, c'è un modo per ottenere un file di dump più piccolo? Sembra ridicolmente grande, anche dopo averlo compresso. Non capisco perché non ci possa essere uno che è solo un pochino più grande dell'impronta del programma, e che ottiene ancora un buon debugging, con il codice sorgente.
Hai familiarità con il debugger integrato in Visual Studio? In realtà non ho letto fino in fondo alla tua domanda, ma non è chiaro il motivo per cui questo non funziona per te. –
In tutta onestà, non ho familiarità con esso, ed è per questo che sono venuto qui. Ci deve essere un pulsante "Carica origine" da qualche parte, ma potrei trovarlo ... – niemiro