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ł…

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…

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…

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ś…

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…

#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…

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)…

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…

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…