Kolejny wpis z kategorii ‘nieznanych’. Dziś będzie o okienku Immediate Window. Wszyscy wiemy (?), że można w nim wykonywać wszelkie polecenia, jakie można by napisać w kodzie czyli np. var builder = new System.Text.StringBuilder() i będziemy mogli na tej zmiennej działać.
Ale za pomocą tego okna można napisać także .load sos (było to także możliwe w VS 2008). Co to nam da?
W większości przypadków wyświetli nam komunikat taki jak poniżej.
Aby załadować SOS musimy włączyć unmanaged debugging w ustawieniach projektu.
A to już da nam więcej. Będziemy mieli dostęp do wszystkich poleceń SOS!
Wtedy będziemy mogli wyświetlić stertę naszej aplikacji. Wystarczy wykonać polecenie !dumpheap –stat i gotowe. Czyli tak naprawdę wyświetlić informacje o wszystkich obiektach w naszym programie.
Potem już z górki. Możemy wyświetlić informacje o konkretnej klasie, czyli !dumpheap –mt
Schodząc jeszcze niżej konkretnego obiektu: !do 02a0cbbc.
Lista poleceń nie ogranicza się tylko do tych wymienionych wyżej i daje dostęp do wszystkich poleceń modułu. Możemy analizować obiekty, kod i stos, struktury runtime’u oraz kilkanaście poleceń diagnostycznych. Pełna lista na zrzucie poniżej lub pod tym linkiem na MSDN.
Nice. Miłego SOS’owania.
Founder of Octal Solutions a .NET software house.
Passionate dev, blogger, occasionally speaker, one of the leaders of Wroc.NET user group. Microsoft MVP. Podcaster – Ostrapila.pl