Zdarza się tak, że mamy potrzebę zdebugować nasz kod, ale projekt w którym go mamy nie jest programem wykonywalnym i nie mamy możliwości jego uruchomienia za pomocą F5 z poziomu Visual Studio. Czy nie ma wtedy wyjścia i jedyne co nam pozostaje to debugowanie przez logowanie? Co wtedy?
Ostatnio otrzymałem podobne zapytanie na maila i stwierdziłem, że to dobry temat na krótki post.
Jedną z opcji jest dołączenie debugger Visual Studio do procesu. Możemy to zrobić za pomocą komendy Attach to Process… z menu DEBUG.
Po wybraniu jej ukaże nam się okno z listą procesów do których możemy nasz debugger dołączyć.
Inną techniką jest wstawienie pułapki w kod naszej aplikacji. Robimy to za pomocą instrukcji
Debugger.Break();
Spłycając to co dzieje się po takiej instrukcji możemy napisać że, po jej napotkaniu system operacyjny wykona specjalny kod, który spowoduje wyświetlenie okienka z informacją, że w naszej aplikacji wystąpił błąd i czy chcemy ją debugować. Pojawi się wtedy także okno w którym będziemy mogli wybrać debugger. Jeśli w danej chwili będziemy mieli otwarte VS z kodem naszej aplikacji powinno ono być widoczne na liście. Po zatwierdzeniu wyboru powinniśmy znaleźć się w edytorze z podświetloną instrukcją
Debugger.Break();
i z możliwością kontynuowania programu już pod kontrolą debuggera.
– Najciekawsze artykuły o .NET
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