[Katowice] Zaawansowane debugowanie aplikacji .NETowych w systemie Windows

devWarsztaty
devWarsztaty
Public group
Location image of event venue

Details

Debugowanie często kojarzy nam się z nieprzyjemną koniecznością walki z błędem. Stąd debugger nie jest narzędziem, które dobrze wspominamy. Chciałbym na tych warsztatach pokazać Wam, że debugowanie może być zajęciem równie odkrywczym co programowanie. Posługując się debuggerem i różnymi narzędziami internalsowymi, poznamy lepiej system operacyjny Windows i mechanizmy rządzące wykonaniem naszych aplikacji. Następnie naprawimy kilka przykładowych błędów w aplikacjach .NETowych, stosując różne techniki diagnostyczne. Wiedza z warsztatów przyda Wam się nie tylko w rozwiązywaniu problemów na Waszym lokalnym komputerze, ale również w środowiskach produkcyjnych.

Wymagania:
- komputer z systemem Windows 7 albo nowszym
- zainstalowane Visual Studio 2017 w wersji Community lub bogatszej
- doświadczenie w programowaniu na platformę .NET
- zainstalowany pakiet startowy (dostaniecie go na ok. tydzień przed terminem warsztatów)

- Pakiet startowy znajduje się w https://drive.google.com/file/d/1EDlVYRrnffPlRxTpVsxCa0cwZD7yPCp-/view

- Wypakuj zawartość na dysk C:/. Powinien powstać katalog devwarsztatydbg- Wykonaj setup.bat jako administrator. Ten skrypcik stworzy nowy katalog na dysku (C:\localsymbols), ustawi zapis publicznych symboli MS do tego katalogu i na koniec scache'uje symbole dla kilku systemowych dll-ek.

- Jeśli ktoś już ma ustawioną zmienną środowiskową _NT_SYMBOL_PATH, nie musi odpalać skryptu.

UWAGA:
Nie ma blokowania miejsc. Jeżeli nie wiesz czy będziesz mógł przyjść nie BLOKUJ miejsca. Niestety wiele razy zdarzyło się nam, że część osób nie przyszła na warsztaty lub zwalniała miejsce w dzień warsztatów (!). Nie możemy dopuścić do takich sytuacji, warsztaty mają formę bezpłatną, ale wymagamy w zamian szacunku i zaangażowania. Tym razem będziemy zwracać uwagę na tego typu zagrywki i następnym razem po prostu daną osobę rejestrującą się z miejsca wrzucimy na waiting list.

Agenda:
- Nieco wiedzy internalsowej o plikach wykonywalnych, symbolach, stosie i asemblerze
- Przydatne narzędzia pakietu Sysinternals
- Visual Studio 2017 - konfiguracja debuggera i zaawansowane techniki debugowania
- Wyjątki - obserwacja, tworzenie i analiza zrzutów pamięci, WER
- Diagnostyka wycieków - podstawy WinDbg, PerfView

Prelegent:
Sebastian Solnica
Inżynier systemowy, z zamiłowaniem do grzebania w internalsach. Dużą radość sprawia mi odkrywanie mechanizmów działania aplikacji i systemu operacyjnego. A debugger i profiler to najlepsi pomocnicy w takich śledztwach. Od czasu do czasu publikuję moje "odkrycia" na blogu (https://lowleveldesign.org/) i Twitterze (https://twitter.com/lowleveldesign).

SPONSORZY:

- Skyrise - https://www.skyrise.tech/
- JetBrains - https://www.jetbrains.com/
- Manning Publications - https://www.manning.com/
- O'Reilly Media - https://www.oreilly.com/
- RevDeBug - https://revdebug.com/