Używam Visual Studio 2010 Professional Edition i Windows Vista.Debugowanie plików zrzutu w programie Visual Studio
Po pierwsze, mam ten kod. Jak widać, spowoduje awarię programu!
using System;
namespace Crash
{
class Program
{
static void Main(string[] args)
{
string a = null;
if (a.Length == 12)
{
// ^^ Crash
}
}
}
}
Program zawiesza się na instrukcji if. Teraz chcę się dowiedzieć, że rozbił się na tym stwierdzeniu.
Jeśli "Uruchom bez debugowania" z programu Visual Studio, Crash.exe ulega awarii. Wykorzystuje 1 356 kb pamięci. Dostaję opcję Vista Close Program/Debug. Jeśli wybiorę Debugowanie, mogę otworzyć nowe wystąpienie Visual Studio i wskazuje mi na NullReferenceException na instrukcji if. To jest dobre.
Teraz pozwól mi założyć, że zawiesza się na innym komputerze, a ja dostaję je do przekazania mi pliku zrzutu za pomocą Menedżera zadań. Jest 54.567kb. Dlaczego taki duży! Jest ogromny! W każdym razie, jestem mniej zainteresowany że (nieznacznie)
Gdybym otworzyć ten zrzut z WinDbg, mam bardzo mało użyteczne dla mojego niewprawnego oka:
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
jednak jest to mniej interesujące dla mnie . O ile mogę powiedzieć, muszę napisać polecenia, aby uzyskać przydatne wyniki, a Visual Studio jest lepsze.
Otwieram go za pomocą Visual Studio. Mogę wybrać "Debuguj tylko z Native", ale dostaję wiele rzeczy, które oznaczają coś dla sprytnych ludzi takich jak ty, a ja nie jestem sprytny! Mam te dwa ekrany:
Więc moje pytanie:
Jak mogę wyświetlić Visual Studio do mojego kodu źródłowego?
Czy istnieje również sposób na uzyskanie mniejszego pliku zrzutu? Wydaje się absurdalnie duży, nawet po kompresji. Nie rozumiem, dlaczego nie może istnieć taki, który jest tylko odrobinę większy niż ślad programu, i nadal otrzymuję dobre debugowanie za pomocą kodu źródłowego.
Czy znasz debugger wbudowany w Visual Studio? Tak naprawdę nie przeczytałem aż do końca twojego pytania, ale nie jest jasne, dlaczego to nie działa dla ciebie. –
Szczerze mówiąc, nie znam tego, dlatego przyjechałem tutaj. Musi być gdzieś przycisk "Load source", ale czy mogę go znaleźć ... – niemiro