Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Advanced Debugging Stories.NET Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT,

Podobné prezentace


Prezentace na téma: "Advanced Debugging Stories.NET Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT,"— Transkript prezentace:

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


Stáhnout ppt "Advanced Debugging Stories.NET Robert Haken [MVP ASP.NET/IIS, MCT] software architect, HAVIT,"

Podobné prezentace


Reklamy Google