Tag: debugging

Zalogowanie ustawień podczas startu applikacji

Zawsze przychodzi ten moment gdy trzeba rozwiązać buga na produkcji i jedyne co mamy to logi aplikacji. Okazuje się oczywiście, że nie ma wszystkich informacji w tych logach. Nie ma nawet całkiem podstawowych informacji. Gdy nic nie widzisz Spotkałem się z sytuacją gdzie był… Continue Reading „Zalogowanie ustawień podczas startu applikacji”

Jaka wersja jest na produkcji? – Stamp.Fody

Update Info ze strony projektu: The project is no longer maintained. Sugerowane alternatywy: – https://github.com/GitTools/GitVersionhttps://github.com/Invenietis/CK-Stamp (fork) Aplikacja gdzieś działa. Zakładam, że jedynym środowiskiem nie jest Produkcja, ale są też Stagging, Test, Development (coś w tym rodzaju) i na każdym może być inny… Continue Reading „Jaka wersja jest na produkcji? – Stamp.Fody”

Decompilatory

Chociaż Resharper ma opcję decompilacji (z której korzystam na co dzień) to warto wiedzieć, że są też inne toole, lepsze w speceficznych warunkach. Nie wymagają one dodawania interesujcej nas biblioteki do projektu. ILSpy To narzędzie lekkie (przynajmniej lżejsze od następnego). Pozwala w prosty sposób… Continue Reading „Decompilatory”

Moje Unit Testy

Dziś będzie opowieść… Co sądzą ludzie, którzy nie testują Ja, dla przykładu, wierzę w Unit Testy. Kontrastowałem (podpytywałem) to ze stanowiskiem wielu osób. Niektóre osoby odpowiadały, że to nie działa. Następnie podały powody dlaczego tak uważają i od tych powodów chciałbym zacząć: widziałem kogoś… Continue Reading „Moje Unit Testy”

False sharing

Jestem w trakcie czytania Patterns for Parallel Programming. Jest tam wiele anty-wzorców programowania współbieżnego, a pośród nich False sharing (nawet nie próbuję tego tłumaczyć na polski). Ze względu na wydajność, systemy zarządzania pamięcią wykorzystują cache’owane bloki pamięci najczęściej po 64 lub 128 bajty. Pobieranie… Continue Reading „False sharing”

#if DEBUG

Poniższy kawałek kodu jest celowo wklejony jako obrazek. Ważne jest tutaj, wyszarzenie instrukcji znajdujących się po warunku #else. Oznacza to, że teraz jesteśmy w trybie DEBUG i preprocesor wytnie to co jest dla RELEASE i kompilator tego nawet nie zobaczy. Nie będzie to nawet… Continue Reading „#if DEBUG”

Debugowanie plugina

Z pluginami problem jest taki, że zazwyczaj (dobrze by było) są to osobne projekty w osobnym solution. Wtedy, żeby uruchomił się kod plugina musimy najpierw uruchomić główną aplikację, z której dopiero odpalimy plugina i staniemy na breakpoint’ie. Mam projekt główny, który developuję (powiedzmy ProgramMain)… Continue Reading „Debugowanie plugina”

Atrybut DebuggerDisplay

Jako, że ostatnio zajmuję się legacy kodem, dodaję do prawie każdej klasy atrybut DebuggerDisplay. Za pomocą tego atrybutu, definiujemy co będzie pokazane w debuggerze, np po najechaniu myszką na obiekt lub w oknach Locals i Watch. Na polach składowych można wywoływać dowolne funkcje (nie… Continue Reading „Atrybut DebuggerDisplay”

Jak zatrzymać się na nie przechwyconym wyjątku

W Debug->Exceptions->Common Language Runtime Exceptions (CTRL+ALT+E) można zaznaczyć, które wyjątki będą rzucane zawsze, a które czasem przechwyci Visual Studio. Update W nowych VS będzie to: Debug->Windows->Exceptions Setting->Common Language Runtime Exceptions Poniżej opis sytuacji, w której nie wiedziałem dlaczego aplikacja nie wywali sie na oczywistym… Continue Reading „Jak zatrzymać się na nie przechwyconym wyjątku”