Wyświetlanie kodu dezasemblacji w debugerze programu Visual Studio (C#, C++, Visual Basic, F#)
W oknie Dezasemblacja zostanie wyświetlony kod zestawu odpowiadający instrukcjom utworzonym przez kompilator. Jeśli debugujesz kod zarządzany, te instrukcje dotyczące zestawu odpowiadają kodowi natywnym utworzonemu przez kompilator Just in Time (JIT), a nie języka microsoft intermediate language (MSIL) utworzonego przez kompilator programu Visual Studio.
Uwaga
Aby w pełni skorzystać z okna Dezasemblacja , zapoznaj się z podstawowymi podstawami programowania w języku zestawu. Materiały referencyjne dla zestawów instrukcji firmy Intel znajdują się w 2. woluminie podręczników architektury. Ten materiał ma również zastosowanie do zestawów instrukcji AMD.
Ta funkcja jest dostępna tylko w przypadku włączenia debugowania na poziomie adresu. Nie jest dostępny do debugowania skryptu ani sql.
Oprócz instrukcji dotyczących zestawu okno Dezasemblacja może zawierać następujące opcjonalne informacje:
Adres pamięci, w którym znajduje się każda instrukcja. W przypadku aplikacji natywnych jest to rzeczywisty adres pamięci. W przypadku języka Visual Basic lub C# jest to przesunięcie od początku funkcji.
Kod źródłowy, z którego pochodzi kod zestawu.
Bajty kodu, czyli reprezentacje bajtów rzeczywistej maszyny lub instrukcji MSIL.
Nazwy symboli dla adresów pamięci.
Numery wierszy odpowiadające kodowi źródłowemu.
Instrukcje języka zestawu składają się z mnemonics, które są skrótami nazw instrukcji i symbolami zmiennych, rejestrów i stałych. Każda instrukcja języka maszynowego jest reprezentowana przez jeden mnemonic języka zestawu opcjonalnie, po którym następuje co najmniej jeden symbol.
Kod zestawu opiera się w dużym stopniu na rejestrach procesorów lub, w przypadku kodu zarządzanego, rejestrów środowiska uruchomieniowego języka wspólnego. Możesz użyć okna Dezasemblacji wraz z oknem Rejestry , które umożliwia sprawdzenie zawartości rejestru.
Aby wyświetlić instrukcje dotyczące kodu maszynowego w nieprzetworzonym formularzu liczbowym, a nie jako język zestawu, użyj okna Pamięć lub wybierz pozycję Bajty kodu z menu skrótów w oknie Dezasemblacja .
Korzystanie z okna Dezasemblacji
Aby włączyć okno Dezasemblacja, w obszarze Narzędzia>Opcje>debugowania wybierz pozycję Włącz debugowanie na poziomie adresu.
Aby otworzyć okno Dezasemblacji podczas debugowania, wybierz pozycję Dezasemblacja systemu Windows>lub naciśnij klawisze Alt+8.
Uwaga
Okna dialogowe i polecenia menu mogą się różnić od tych opisanych w Pomocy, w zależności od ustawień aktywnych lub wydania. Aby zmienić ustawienia, wybierz pozycję Importuj i Eksportuj Ustawienia w menu Narzędzia. Aby uzyskać więcej informacji, zobacz Resetowanie wszystkich ustawień.
Aby włączyć lub wyłączyć opcjonalne informacje, kliknij prawym przyciskiem myszy w oknie Dezasemblacja i ustaw lub wyczyść żądane opcje w menu skrótów.
Żółta strzałka na lewym marginesie oznacza bieżący punkt wykonywania. W przypadku kodu natywnego punkt wykonywania odpowiada licznikowi programu procesora CPU. Ta lokalizacja zawiera następną instrukcję, która zostanie wykonana w programie.
Stronicowanie w górę lub w dół w pamięci
Podczas wyświetlania zawartości pamięci w oknie Pamięć lub w oknie Dezasemblacji możesz użyć pionowego paska przewijania, aby przejść w górę lub w dół w przestrzeni pamięci.
Aby stronicować w dół (przejdź do wyższego adresu pamięci), kliknij pionowy pasek przewijania poniżej pola przewijania.
Aby stronicować w górę (przejdź do niższego adresu pamięci), kliknij pionowy pasek przewijania nad kciukiem.
Zauważysz również, że pionowy pasek przewijania działa w sposób nietypowy. Przestrzeń adresowa nowoczesnego komputera jest bardzo duża i łatwo byłoby zgubić się, chwytając kciuk paska przewijania i przeciągając go do losowej lokalizacji. Z tego powodu kciuk jest "springloaded" i zawsze pozostaje w środku paska przewijania. W aplikacjach kodu natywnego można stronicować w górę lub w dół, ale nie można swobodnie przewijać.
W aplikacjach zarządzanych dezasembleracja jest ograniczona do jednej funkcji i można je przewijać normalnie.
Zauważysz, że wyższe adresy są wyświetlane w dolnej części okna. Aby wyświetlić wyższy adres, musisz przejść w dół, a nie w górę.
Przenieś w górę lub w dół jedną instrukcję
- Kliknij strzałkę w górnej lub dolnej części pionowego paska przewijania.