Nie wiem jak wy ale ja kocham debugować kod. Odkrywanie, gdzie programista (w wielu wypadkach ja sam!) popełnił (świadomie/nieświadomie) błąd wprawia mnie w stan euforii pewnie jak morfina uzależnionego :). Visual Studio (dla mnie) jest dość bliskie idealnego narzędzia do tego celu, ale do szczęścia brakowało mu kilku rzeczy. Jedną z nich był podgląd zwracanej wartości z funkcji. W poprzedniej wersji mogliśmy tę wartość uzyskać, ale trzeba było się troszkę "namęczyć". VS 2013 to the rescue Najnow...
Niedawno Microsoft wypuścił bardzo interesującą bibliotekę: CLR Memory Diagnostics (w skrócie: ClrMD). Cudeńko to daje nam do rąk niemałą władzę: możemy z jej pomocą podpiąć się z kodu pod dowolny proces .NET i odczytać z niego masę interesujących informacji (jak chociażby wszystko co chcielibyśmy wiedzieć o aktualnym stanie sterty – Heap). Gdyby tego było mało, w ten sam sposób możemy z kodu analizować crash dumpy.
Visual Studio by default is showing a message when trying to attach to process. It is saying that: Attaching to this process can potentially harm your computer. If the information below looks suspicious or you are unsure, do not attach to this process. Because I'm attaching many times a day it becomes really annoying. Couple minutes of googling and here it is the solution for disabling it: First you need to make sure that Visual Studio isn't running.Next you need to modify registry key depending on...
In this post I’m going to show you how to diagnose SQL exceptions using memory dumps. Imagine you have a web application deployed on a production server. Your application is using Elmah configured to log all exceptions to a dedicated table. One day you receive information that users are unable to make orders and in the Elmah log there are lots of SqlTypeExceptions: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 1...
"Reużywalność" w PowerShell'u Pisząc skrypt w PowerShell'u postanowiłem wywołać metodę z zewnętrznej biblioteki wchodzącej w skład rozwijanego przez mój zespól systemu. Zaimportowałem dll'kę za pomocą metody Assembly.LoadFrom , utworzyłem instancję typu danych i uruchomiłem metodę. Oczywiście otrzymałem wyjątek NullReferenceException, który wskazywał na to, że problem pojawił się w metodzie z zewnętrzenej biblioteki. Zastanowiłem się chwilę i stwierdziłem, że nie zaszkodziłoby zdebuggować tej metody. K...
Debuggowanie aplikacji nie jest procesem łatwym ani szybkim. Visual Studio już od dawna przoduje w tej kwestii, ale nadal istnieje szerokie pole do popisu w tej dziedzinie, a przykładem tego jest tytułowy dodatek Debugger Canvas Czym jest Debugger Canvas? Jest dodatkiem do Visual Studio Ultimate, który całkowicie zmienia sposób w jaki walczy się z błędami w kodzie. Postawienie breakpointa nie powoduje już zatrzymania się kodu w danym pliku i otwarcia go na nowej zakładce w VS, ale uruchomienie specjalne...
Niedawno oglądałem nagranie z sesji Advanced Debugging with Visual Studio 2010, która prowadził Ingo Rammer. Bardzo fajna sesja, świetnie prowadzona. Pojawiły się na niej ciekawe informacje, które pozwalają ułatwić i urozmaicić sobie sesje w debuggerze Visual Studio. Zainspirowany tematem, postanowiłem na własnej skórze przetestować pokazywane rozwiązania. Poprzednio pokazywałem jak można manipulować wyświetlaniem ...
Dziś powiemy sobie na temat (chyba) najbardziej zaawansowanego narzędzia służącego do debuggowania naszego kodu na produkcji. WinDbg, bo o nim będzie mowa, to część pakietu Debugging Tools for Windows. Do celów przykładowych posłużymy się aplikacją z poprzedniego wpisu o mDbg. WinDbg Tak jak już było wspomniane wyżej WinDbg to część większego pakietu Debugging Tools for Windows i jest dostępny w dwóch wersjach 32- i 64-bitowej. Obowiązkowe narzędzie dla kogoś kto chce na poważnie zajmować się debuggowani...
W poprzednim wpisie pokazaliśmy sobie jak możemy zmusić Visual Studio do zdalnego debuggowania naszej aplikacji na produkcji. W tym wpisie przyjrzymy się MDbg. MDbg - to prosty, konsolowy debugger przeznaczony do śledzenia kodu aplikacji zarządzanych (tylko i wyłącznie – nie ma wsparcia dla aplikacji natywnych). MDbg jest częścią instalacji Visual Studio lub Windows SDK. Działa także bez instalacji, tak więc możemy go nagrać na przenośną pamięć i nosić ze sobą w razie potrzeby. Poniżej Mdbg w działaniu –...
Tytuł tego posta może być lekkim zeskoczeniem. Od premiery VS 2010 sporo czasu już minęło. Postanowiłem jednak spisać kilka nowości jakie udostępnia ono pod kątem debugowania. Zadanie jest o tyle trudne, że prawie wszystko co było do powiedzenia w tym temacie zostało już powiedziane przez pracowników MS w postach takich jak ten napisany przez ScottaGu. Postaram się jednak przedstawić temat z nowej perspektywy.Dump
Zacznę kontrowersyjnie. Lubię jak aplikacja nie działa, tak jak powinna. To znaczy - niekoniecznie lubię sam fakt niepoprawnego działania, ale dzięki temu mam możliwość odpalenia debugger’a (lub innego użytecznego narzędzia – głównie SysInternals), aby dowiedzieć się dlaczego i spróbować to naprawić. Ostatniego czasu ciekawych wrażeń dostarcza(ło) mi IE8. Pewnego dnia, bez powodu, IE na moim laptopie zaczął raczyć mnie niniejszym błędem jeszcze nawet przed tym jak się dobrze uruchomił: