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.


dotnetomaniak.plNajciekawsze artykuły o .NET