Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilMária Kovářová
1
http://tinyurl.com/havit-job Advanced Debugging Stories.NET Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT, s.r.o. haken@havit.cz, @RobertHaken, http://knowledge-base.havit.cz
2
http://tinyurl.com/havit-job DEMO StackOverflow – DebugDiag, WinDbg
3
http://tinyurl.com/havit-job Debugging Tools for Windows WinDbg – „GUI“ NTSD – new console CSD – classic console DebugDiag - samostatné součást Windows SDK www.windbg.org
4
http://tinyurl.com/havit-job Debugger Extensions pro.NET.load C:\path\to\extension.dll SOS.dll – Son of Strike, součást.NET.loadby sos mscorwks (.NET < 4).loadby sos clr (.NET >= 4) PSSCOR2/PSSCOR4 – širší SOS (web) SOSEX, NetEx – 3rd party !help [ ]
5
http://tinyurl.com/havit-job Záludnosti použití Debuggeru Platform - x86 vs. x64 Symbols.symfix (MSFT Symbols Server),.sympath,.sympath+.reload.NET Data Access Layer (mscordacwks.dll).cordll -ve -u –l stejná verze, jako na laděném stroji (dtto SOS)
6
http://tinyurl.com/havit-job Režimy práce s Debuggerem Open Executable... ( g pro Run) Attach to a Process... Open Crash Dump... Task Manager / Create Dump File (!!32-bit vs. x64 stroj) – DebugDiag / ADPLUS – Windows Error Reporting – Windows Crash Dump – WIN32 API (extern v.NET)
7
http://tinyurl.com/havit-job DebugDiag „user“-friendly UI připravené analýzy sběr dat/dumpů pod pokličkou debugger services voláno např. i z Azure Web Apps KUDU
8
http://tinyurl.com/havit-job WinDbg Reference
9
http://tinyurl.com/havit-job Stack Examination !ClrStack [-i] [-a] [-l] [-p] !DumpStack [-EE] !EEStack [-EE] (all threads) !DumpStackObjects (typy)
10
http://tinyurl.com/havit-job Heap Examination !DumpHeap [-stat] [-type ] [-mt ] [-live|dead] !HeapStat [-inclUnrooted] !GCRoot !GCHandles !EEHeap –gc !FinalizationQueue [-allReady] !FindAppDomain
11
http://tinyurl.com/havit-job Object Inspection !DumpObject !DumpArray !DumpVC dd dq !ObjSize
12
http://tinyurl.com/havit-job Error Diagnostics !PrintException [ObjAddr] [-nested] !DumpAllExceptions(PSSCOR4) !wdae(NETEXT) !wpe(NETEXT) !VerifyHeap !VerifyObj !analyze -v(native)
13
http://tinyurl.com/havit-job Threads !Threads!ThreadState ~123s !ThreadPool
14
http://tinyurl.com/havit-job DEMO, DEMO, DEMO
15
http://tinyurl.com/havit-job Diagnostika - postup 1.neodkladné kroky, typicky memory dump 2.systematizace – symptomps (základní vs. odvozené) – steps to reproduce – od kdy? co se změnilo? 3.zkušenosti + Google +... 4.hypotézy + jejich testování 5.verifikace řešení
16
http://tinyurl.com/havit-job Doporučení validujte ořezávejte problém, zužujte pracovní pole porovnávejte
17
http://tinyurl.com/havit-job.NET Internals - AppDomains System – zakládá Shared a Application – loaduje mscorlib.dll (into Shared) – spravuje AppDomains, spravuje strings – předvytvoří instance výjimek OoM, SO,... Shared – obsahuje mscorlib.dll + basic types - string, enum,.. Application (n) – user code !DumpDomain [ ]
18
http://tinyurl.com/havit-job.NET Internals - Assemblies Assembly = unit of deployment – manifest – jeden nebo několik Modules – self-describing JIT Compilation, MSIL, Method Tables, Method Descr. !DumpAssembly !DumpModule [-mt] !DumpMT !IP2MD !DumpMD
19
http://tinyurl.com/havit-job Q & A Robert Haken MVP ASP.NET/IIS, MCT @RobertHaken, haken@havit.cz http://knowledge-base.havit.cz
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.