Debugowanie .NET. Zaawansowane techniki diagnostyczne
Mario Hewardt
Cena detaliczna: 79,00 zł
Twoja cena: 71,10 zł
Wydawnictwo: Helion
Oprawa: miękka
Numer katalogowy: 488886
Dostępność: 2 - 4 dni
Poleć znajomym:










Debugowanie .NET. Zaawansowane techniki diagnostyczne - opis
Sprawdź, jak rozwiązują problemy najlepsi specjaliści!
- Jak stworzyć niezawodny kod?
- Jak rozwiązywać problemy z synchronizacją wątków?
- Jak wykorzystać usługę raportowania błędów?
- Podstawowe informacje o dostępnych narzędziach
- Podstawy CLR
- Techniki diagnostyczne - sterowanie wykonaniem programu, punkty wstrzymania
- Inspekcja obiektowa oraz inspekcja kodu
- Dostępne polecenia wewnętrzne CLR oraz polecenia diagnostyczne
- Techniki odzyskiwania pamięci
- Rozwiązywanie problemów z synchronizacją wątków
- Metody diagnozowania wycieków interoperacyjności
- Wykorzystanie plików obrazu
- Generowanie zrzutów z wykorzystaniem debuggera
- Wykorzystanie usługi raportowania błędów
- Dostępne dodatkowe narzędzia, wspierające proces diagnostyczny
Debugowanie .NET. Zaawansowane techniki diagnostyczne - spis treści
Przedmowa (17)
Wstęp (19)
Podziękowania (29)
O autorze (31)
Część I: Podstawy (33)
Rozdział 1. Podstawowe wiadomości o narzędziach (35)
- Debugging Tools for Windows (36)
- .NET 2.0 - Redistributable (37)
- .NET 2.0 - SDK (38)
- SOS (40)
- SOSEX (42)
- CLR Profiler (43)
- Mierniki wydajności (46)
- Reflector for .NET (47)
- PowerDbg (48)
- Managed Debugging Assistants (50)
- Podsumowanie (53)
- Przegląd wysokopoziomowy (55)
-
CLR i program ładujący Windows (59)
- Ładowanie obrazów rodzimych (60)
- Ładowanie zestawów .NET (62)
-
Domeny aplikacji (66)
- Systemowa domena aplikacji (69)
-
Wspólna domena aplikacji (70)
- Domyślna domena aplikacji (70)
- Zestawy (70)
-
Manifest zestawu (72)
- Metadane typu (74)
- Tabela bloku synchronizacji (81)
- Uchwyt do typu (85)
- Deskryptory metod (92)
- Moduły (93)
- Tokeny metadanych (96)
- EEClass (98)
- Podsumowanie (100)
- Debuger i proces docelowy debugera (101)
- Symbole (106)
-
Sterowanie wykonywaniem programu (109)
- Przerywanie wykonywania (109)
- Wznawianie wykonywania (110)
- Przemierzanie kodu (112)
- Kończenie sesji diagnostycznej (116)
-
Ładowanie rozszerzeń kodu zarządzanego (116)
- Ładowanie rozszerzenia SOS (118)
- Ładowanie rozszerzenia SOSEX (120)
- Kontrolowanie procesu debugowania CLR (121)
-
Ustawianie punktów wstrzymania (121)
- Punkty wstrzymania na funkcjach skompilowanych przez kompilator JIT (124)
- Punkty wstrzymania na funkcjach jeszcze nieskompilowanych (127)
- Punkty wstrzymania w zestawach prekompilowanych (130)
- Punkty wstrzymania na metodach uogólnionych (133)
-
Inspekcja obiektowa (134)
- Zrzucanie pamięci surowej (137)
- Zrzuty typów wartościowych (140)
- Zrzuty podstawowych typów referencyjnych (146)
- Zrzuty tablic (147)
- Zrzuty obiektów na stosie (153)
- Sprawdzanie rozmiarów obiektów (155)
- Zrzuty wyjątków (156)
-
Operacje na wątkach (161)
- Polecenie ClrStack (162)
- Polecenie Threads (165)
- Polecenie DumpStack (169)
- Polecenie EEStack (171)
- COMState (171)
-
Inspekcja kodu (172)
- Dezasemblacja kodu (172)
- Wydobywanie deskryptora metod z adresu kodu (174)
- Wyświetlanie instrukcji języka pośredniego (175)
-
Polecenia wewnętrzne CLR (175)
- Sprawdzanie wersji CLR (176)
- Znajdowanie deskryptora metod po nazwie (176)
- Wykonywanie zrzutu bloku synchronizacji obiektu (177)
- Wykonywanie zrzutu tabeli metod obiektu (177)
- Wykonywanie zrzutu informacji o stercie zarządzanej i systemie odzyskiwania pamięci (178)
-
Polecenia diagnostyczne (178)
- Znajdowanie domeny aplikacji obiektu (179)
- Informacje o procesie (179)
-
Polecenia rozszerzenia SOSEX (180)
- Rozszerzona obsługa punktów wstrzymania (180)
- Zarządzane metadane (184)
- Dane stosu (185)
- Inspekcja obiektów (187)
- Automatyczne wykrywanie zakleszczeń (188)
- Polecenia dotyczące sterty zarządzanej i systemu odzyskiwania pamięci (190)
- Zapisywanie zrzutów awaryjnych w plikach (192)
- Podsumowanie (194)
-
Informacje wstępne (197)
- Tożsamość zestawu (198)
- Globalny bufor zestawów (202)
- Domyślny kontekst ładowania (205)
- Kontekst "load-from" (206)
- Kontekst "load-without" (207)
- Prosty błąd ładowania zestawu (207)
- Błąd kontekstu ładowania (214)
- Interoperacyjność i wyjątek DllNotFoundException (222)
- Debugowanie LCG (224)
- Podsumowanie (229)
-
Architektura pamięci systemu Windows (232)
- Alokowanie pamięci (236)
-
System odzyskiwania pamięci (241)
- Pokolenia (242)
- Korzenie (251)
- Finalizacja (258)
- Odzyskiwanie pamięci (267)
- Sterta obiektów dużych (269)
- Unieruchamianie obiektów (274)
- Tryby odzyskiwania pamięci (280)
- Diagnozowanie uszkodzonej sterty zarządzanej (281)
- Diagnozowanie fragmentacji sterty zarządzanej (289)
- Diagnozowanie wyjątków braku pamięci (298)
- Podsumowanie (316)
- Podstawy synchronizacji (317)
-
Mechanizmy synchronizacji wątków (318)
- Zdarzenia (323)
- Muteksy (325)
- Semafory (326)
- Monitory (327)
- ReaderWriterLock(Slim) (328)
- Pula wątków (330)
-
Wewnętrzne mechanizmy synchronizacji (331)
- Nagłówek obiektu (331)
- Bloki synchronizacji (333)
- Blokady lekkie (337)
-
Scenariusze synchronizacji (341)
- Proste zakleszczenie (341)
- Wyjątki blokad porzuconych (349)
- Anulowanie wątków (354)
- Zawieszenie finalizatora (358)
- Podsumowanie (366)
- P/Invoke (369)
-
Interoperacyjność COM (376)
- Opakowanie wywoływane w czasie wykonywania (377)
-
Diagnozowanie wywołań P/Invoke (382)
- Konwencje wywoływania (383)
- Delegaty (388)
- Diagnozowanie wycieków interoperacyjności (396)
- Diagnozowanie finalizacji interoperacyjności COM (402)
- Podsumowanie (411)
-
Pliki obrazu - podstawowe wiadomości (416)
- Generowanie zrzutów przy użyciu debugera (418)
- Generowanie plików zrzutu za pomocą narzędzia ADPlus (425)
- Diagnozowanie plików zrzutu (427)
- Warstwa dostępu do danych (428)
- Analizowanie plików zrzutu - nieobsłużone wyjątki .NET (432)
-
Usługa raportowania błędów (433)
- Architektura usługi Windows Error Reporting (434)
- Podsumowanie (461)
-
PowerDbg (463)
- Instalowanie narzędzia PowerDbg (464)
- Polecenie Analyze-PowerDbgThreads (466)
- Polecenie Send-PowerDbgCommand (467)
- Rozszerzanie PowerDbg (469)
-
Visual Studio (472)
- Integracja z SOS (472)
- Debugowanie platformy .NET na poziomie kodu źródłowego (476)
- Visual Studio 2010 (479)
-
Program profilujący CLR (484)
- Uruchamianie programu profilującego CLR (484)
- Widok podsumowania (486)
- Widoki histogramu (488)
- Widoki wykresów (489)
- WinDbg i polecenie cmdtree (491)
- Podsumowanie (493)
-
Narzędzia (495)
- Debugging Tools for Windows (496)
- Pakiet .NET 4.0 Redistributable (496)
- SOS (496)
-
Sterta zarządzana i odzyskiwanie pamięci (497)
- Rozszerzone narzędzia diagnostyczne (498)
- Odzyskiwanie pamięci w tle (503)
-
Synchronizacja (504)
- Pula wątków i zadań (505)
- Monitor (505)
- Bariera (506)
- Klasa CountdownEvent (507)
- Klasa ManualResetEventSlim (507)
- Klasa SemaphoreSlim (507)
- Klasy SpinWait i SpinLock (507)
- Interoperacyjność (508)
- Debugowanie poawaryjne (509)
- Podsumowanie (510)



