Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
.NET ãããã¬ãŒæ¡åŒµæ©èœã䜿çšãããšãã©ã€ã ããã»ã¹ãšãã³ãã®äž¡æ¹ã§ã.NET ã©ã³ã¿ã€ã å ã§å®è¡ãããŠããã³ãŒãã«é¢ããæ å ±ã衚瀺ã§ããŸãã æ¡åŒµæ©èœã¯ Windbg ãš LLDB ã§åäœããŸãã .NET ãããã¬ãŒæ¡åŒµæ©èœã䜿çšãããšã次ã®ããšãã§ããŸãã
- ãããŒãžã ããŒãã«é¢ããæ å ±ãåéããŸãã
- ããŒãã®ç Žæãæ¢ããŸãã
- ã©ã³ã¿ã€ã ã§äœ¿çšãããå éšããŒã¿åã衚瀺ããŸãã
- ã©ã³ã¿ã€ã å ã§å®è¡ãããŠãããã¹ãŠã®ãããŒãžã ã³ãŒãã«é¢ããæ å ±ã衚瀺ããŸãã
.NET ãããã¬ãŒæ¡åŒµæ©èœã«ã¯ãæ¢åã® dotnet-sos ããŒã«ããã®ã³ãã³ããšæ°ããã³ãã³ããå«ãŸããŠããŸãã ãã€ãã£ã AOT ã©ã³ã¿ã€ã ã§ã¯ãéãããäžé£ã®ã³ãã³ãããµããŒããããããã«ãªããŸããã
Install
ãŠã£ã³ããŠãº
Windows SDK ãã Windbg ãã€ã³ã¹ããŒã«ããŸãã Windbg ããŒãžã§ã³ 10.0.18317.1001 以éã§ã¯ãMicrosoft æ¡åŒµæ©èœã®ã£ã©ãªãŒããæ¡åŒµæ©èœãèªåçã«èªã¿èŸŒãŸããŸãã
Linux
LLDB ãš .NET ãããã¬ãŒæ¡åŒµæ©èœãã€ã³ã¹ããŒã«ããã«ã¯ã Linux ã§ã® LLDB ã®ã€ã³ã¹ããŒã«ãšäœ¿çšã«é¢ããèšäºãåç §ããŠãã ããã
æ§æ
windbg ã®äž: ![command] [options]
LLDB: sos [command] [options]
ã³ãã³ãã®å€ãã¯ãLLDB ã®äžã«ãšã€ãªã¢ã¹ãŸãã¯ã·ã§ãŒãã«ããããããŸã: clrstack [options]
ã³ãã³ã
次ã®ã³ãã³ãã®è¡šã¯ãsoshelp <command>ã䜿çšããŠäœ¿çšã§ããŸãã
| åœä»€ | 圢容 |
|---|---|
bpmd [-nofuturemodule] [<ã¢ãžã¥ãŒã«å><ã¡ãœããå>] [-md<MethodDesc>] -list-clear<ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãçªå·>-clearall |
æå®ããã¢ãžã¥ãŒã«å
ã®æå®ããã¡ãœããã«ãã¬ãŒã¯ãã€ã³ããäœæããŸãã æå®ããã¢ãžã¥ãŒã«ãšã¡ãœãããèªã¿èŸŒãŸããŠããªãå Žåããã®ã³ãã³ãã¯ãã¢ãžã¥ãŒã«ãèªã¿èŸŒãŸããJust-In-Time (JIT) ãã³ã³ãã€ã«ãããããšã瀺ãéç¥ãåŸ æ©ããŠãããã¬ãŒã¯ãã€ã³ããäœæããŸãã ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãã®äžèЧã¯ã-listã-clearã-clearall ãªãã·ã§ã³ã䜿çšããŠç®¡çã§ããŸãã -list ãªãã·ã§ã³ã䜿çšãããšãä¿çäžã®ãã¹ãŠã®ãã¬ãŒã¯ãã€ã³ãã®äžèЧãçæãããŸãã ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãã« 0 以å€ã®ã¢ãžã¥ãŒã« ID ãããå Žåããã®ãã¬ãŒã¯ãã€ã³ãã¯ããã®ç¹å®ã®èªã¿èŸŒãŸããã¢ãžã¥ãŒã«ã®é¢æ°ã«åºæã§ãã ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãã«ã¢ãžã¥ãŒã« ID ã 0 ã®å Žåããã®ãã¬ãŒã¯ãã€ã³ãã¯ãŸã èªã¿èŸŒãŸããŠããªãã¢ãžã¥ãŒã«ã«é©çšãããŸãã |
| CLRStack [-a] [-l] [-p] [-n] [-f] [-r] [-all] | ãããŒãžã ã³ãŒãã®ã¿ã®ã¹ã¿ã㯠ãã¬ãŒã¹ãæäŸããŸãã -p ãªãã·ã§ã³ã«ã¯ããããŒãžã颿°ã®åŒæ°ã衚瀺ãããŸãã -l ãªãã·ã§ã³ã¯ããã¬ãŒã å ã®ããŒã«ã«å€æ°ã«é¢ããæ å ±ã衚瀺ããŸãã .NET ãããã¬ãŒæ¡åŒµæ©èœã¯ããŒã«ã«åãååŸã§ããªããããããŒã«ã«åã®åºåã¯ããŒã«ã« ã¢ãã¬ã¹ -n ãªãã·ã§ã³ãæå®ãããšããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã®è¡šç€ºãç¡å¹ã«ãªããŸãã ãããã¬ãŒã«ãªãã·ã§ã³ SYMOPT_LOAD_LINESãæå®ãããŠããå ŽåãSOS ã¯ãã¹ãŠã®ãããŒãžã ãã¬ãŒã ã®ã·ã³ãã«ãæ€çŽ¢ããæåããå Žåã¯ã察å¿ãããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã衚瀺ããŸãã ãã®åäœãç¡å¹ã«ããã«ã¯ã-n (è¡çªå·ãªã) ãã©ã¡ãŒã¿ãŒãæå®ã§ããŸãã -f ãªãã·ã§ã³ (ãã« ã¢ãŒã) ã«ã¯ããããŒãžã ãã¬ãŒã ãšããããŒãžã ãã¬ãŒã ã®ã¢ã»ã³ããªåãšé¢æ°ãªãã»ãããæ··åšãããã€ãã£ã ãã¬ãŒã ã衚瀺ãããŸãã ãã®ãªãã·ã§ã³ã¯ã dotnet-dumpã§äœ¿çšããå Žåã¯ãã€ãã£ã ãã¬ãŒã ã衚瀺ããŸããã-r ãªãã·ã§ã³ã¯ãã¹ã¿ã㯠ãã¬ãŒã ããšã«ã¬ãžã¹ã¿ããã³ãããŸãã -all ãªãã·ã§ã³ã¯ããã¹ãŠã®ãããŒãžã ã¹ã¬ããã®ã¹ã¿ãã¯ããã³ãããŸãã |
| COMState | åã¹ã¬ããã® COM ã¢ããŒãã¡ã³ã ã¢ãã«ãš Context ãã€ã³ã¿ãŒ (䜿çšå¯èœãªå Žå) ãäžèŠ§è¡šç€ºããŸãã ãã®ã³ãã³ã㯠Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
|
DumpArray [-start<startIndex>] [-length<length>] [-details] [-nofields] é
åãªããžã§ã¯ã ã¢ãã¬ã¹ <> -åã¯- DA [-start<startIndex>] [-length<length>] [-details] [-nofields] é åãªããžã§ã¯ã ã¢ãã¬ã¹> |
é
åãªããžã§ã¯ãã®èŠçŽ ã調ã¹ãŸãã -start ãªãã·ã§ã³ã¯ãèŠçŽ ã衚瀺ããéå§ã€ã³ããã¯ã¹ãæå®ããŸãã -length ãªãã·ã§ã³ã¯ã衚瀺ããèŠçŽ ã®æ°ãæå®ããŸãã -nofields ãªãã·ã§ã³ãæå®ãããšãé åã衚瀺ãããªããªããŸãã ãã®ãªãã·ã§ã³ã¯ã-details ãªãã·ã§ã³ãæå®ãããŠããå Žåã«ã®ã¿äœ¿çšã§ããŸãã |
| DumpAsync (dumpasync) [-mt<MethodTable address>] [-type<partial type name>] [-waiting] [-roots] | DumpAsync ã¯ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãããããŒããèµ°æ»ããéåæã¡ãœããã®ç¶æ
ãããŒãã«è»¢éããããšãã«äœæãããéåæç¶æ
ãã·ã³ã衚ããªããžã§ã¯ããæ¢ããŸãã ãã®ã³ãã³ãã¯ãasync voidãasync Taskãasync Task<T>ãasync ValueTaskãããã³ async ValueTask<T>ãšããŠå®çŸ©ãããéåæã¹ããŒã ãã·ã³ãèªèããŸããåºåã«ã¯ãæ€åºãããåéåæã¹ããŒã ãã·ã³ ãªããžã§ã¯ãã®è©³çްãããã¯ãå«ãŸããŸãã ãããã®è©³çŽ°ã¯æ¬¡ã®ãšããã§ãã - éåæã¹ããŒã ãã·ã³ ãªããžã§ã¯ãã®å (MethodTable ã¢ãã¬ã¹ããªããžã§ã¯ã ã¢ãã¬ã¹ããµã€ãºãããã³ååãå«ã) ã®è¡ã - ãªããžã§ã¯ãã«å«ãŸããã¹ããŒã ãã·ã³ã®çš®é¡åã®è¡ã - ã¹ããŒã ãã·ã³äžã®åãã£ãŒã«ãã®äžèЧã - 1 ã€ä»¥äžãç»é²ãããŠããå Žåããã®ã¹ããŒã ãã·ã³ ãªããžã§ã¯ãããã®ç¶ç¶ã®è¡ã - ãã®éåæã¹ããŒã ãã·ã³ ãªããžã§ã¯ãã® GC ã«ãŒããæ€åºããŸããã ãã€ãã£ã AOT ã¢ããªã±ãŒã·ã§ã³ã§ãµããŒããããŸãã |
| DumpAssembly |
ã¢ã»ã³ããªã«é¢ããæ
å ±ã衚瀺ããŸãã DumpAssembly ã³ãã³ãã¯ãè€æ°ã®ã¢ãžã¥ãŒã«ãååšããå Žåã¯äžèŠ§è¡šç€ºããŸãã DumpDomain ã³ãã³ãã䜿çšããŠãã¢ã»ã³ã㪠ã¢ãã¬ã¹ãååŸã§ããŸãã |
| DumpClass<EEClass ã¢ãã¬ã¹> | åã«é¢é£ä»ããããŠãã EEClass æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸããDumpClass ã³ãã³ãã¯éçãã£ãŒã«ãå€ã衚瀺ããŸãããééçãã£ãŒã«ãå€ã¯è¡šç€ºããŸããã |
| DumpDomain [<ãã¡ã€ã³ ã¢ãã¬ã¹>] | æå®ãã Assembly ãªããžã§ã¯ã ã¢ãã¬ã¹å ã«èªã¿èŸŒãŸããå AppDomain ãªããžã§ã¯ããåæããŸãã ãã©ã¡ãŒã¿ãŒãªãã§åŒã³åºããããšãDumpDomain ã³ãã³ãã¯ãããã»ã¹å ã®ãã¹ãŠã® AppDomain ãªããžã§ã¯ããäžèŠ§è¡šç€ºããŸãã .NET (Core) ã«ã¯ 1 ã€ã® AppDomainãããªããããDumpDomain 㯠1 ã€ã®ãªããžã§ã¯ãã®ã¿ãè¿ããŸãã |
| DumpHeap [-stat] [-strings] [-short] [-min -min<size>] [-max<size>] [-thinlock] [-startAtLowerBound] [-mt<MethodTable address>] [-type<partial type name>] [start [end]] ] | ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ããŒãã«é¢ããæ
å ±ãšããªããžã§ã¯ãã«é¢ããã³ã¬ã¯ã·ã§ã³çµ±èšæ
å ±ã衚瀺ããŸãã DumpHeap ã³ãã³ãã¯ãã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãå ã®éå°ãªæçåãæ€åºããå Žåã«èŠåã衚瀺ããŸãã -stat ãªãã·ã§ã³ã¯ãåºåãçµ±èšã¿ã€ãã®èŠçŽã«å¶éããŸãã -strings ãªãã·ã§ã³ã¯ãåºåãçµ±èšæååå€ã®èŠçŽã«å¶éããŸãã -short ãªãã·ã§ã³ã¯ãåºåãåãªããžã§ã¯ãã®ã¢ãã¬ã¹ã®ã¿ã«å¶éããŸãã ãã®ã³ãã³ãã䜿çšãããšãèªååã®ããã«ã³ãã³ãããå¥ã®ãããã¬ãŒ ã³ãã³ãã«åºåãç°¡åã«ãã€ãã§ããŸãã -min ãªãã·ã§ã³ã¯ããã€ãåäœã§æå®ããã size ãã©ã¡ãŒã¿ãŒããå°ãããªããžã§ã¯ããç¡èŠããŸãã-max ãªãã·ã§ã³ã¯ããã€ãåäœã§æå®ããã size ãã©ã¡ãŒã¿ãŒãã倧ãããªããžã§ã¯ããç¡èŠããŸãã-thinlock ãªãã·ã§ã³ã¯ ThinLocks ãå ±åããŸãã 詳现ã«ã€ããŠã¯ãSyncBlk ã³ãã³ããåç §ããŠãã ããã -startAtLowerBound ãªãã·ã§ã³ã¯ãæå®ãããã¢ãã¬ã¹ç¯å²ã®äžéããããŒã ãŠã©ãŒã¯ã匷å¶çã«éå§ããŸãã å€ãã®å Žåãèšç»ãã§ãŒãºã§ã¯ããªããžã§ã¯ããç§»åããããããããŒãã¯ãŠã©ãŒã¯å¯èœã§ã¯ãããŸããã ãã®ãªãã·ã§ã³ DumpHeap ããæå®ããäžéã§åŒ·å¶çã«ãŠã©ãŒã¯ãéå§ããŸãã ãã®ãªãã·ã§ã³ãæ©èœãããã«ã¯ãæå¹ãªãªããžã§ã¯ãã®ã¢ãã¬ã¹ãäžéãšããŠæå®ããå¿
èŠããããŸãã ç¡å¹ãªãªããžã§ã¯ãã®ã¢ãã¬ã¹ã«ã¡ã¢ãªã衚瀺ããŠã次ã®ã¡ãœãã ããŒãã«ãæåã§èŠã€ããããšãã§ããŸãã ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãçŸåš memcopyã®åŒã³åºãäžã®å Žåã¯ããã©ã¡ãŒã¿ãŒãšããŠæå®ãããéå§ã¢ãã¬ã¹ã«ãµã€ãºã远å ããããšã§ã次ã®ãªããžã§ã¯ãã®ã¢ãã¬ã¹ãèŠã€ããããšãã§ããŸãã-mt ãªãã·ã§ã³ã«ã¯ãæå®ãã MethodTable æ§é äœã«å¯Ÿå¿ãããªããžã§ã¯ãã®ã¿ãäžèŠ§è¡šç€ºãããŸãã-type ãªãã·ã§ã³ã«ã¯ãæå®ããæååã®éšåæååãšäžèŽããååãæã€ãªããžã§ã¯ãã®ã¿ãäžèŠ§è¡šç€ºãããŸãã start ãã©ã¡ãŒã¿ãŒã¯ãæå®ããã¢ãã¬ã¹ãããªã¹ããéå§ããŸããend ãã©ã¡ãŒã¿ãŒã¯ãæå®ããã¢ãã¬ã¹ã®äžèЧã忢ããŸãããã€ãã£ã AOT ã¢ããªã±ãŒã·ã§ã³ã§ãµããŒããããŸãã |
| ãããŒãžã ã¡ãœããã«é¢é£ä»ããããŠããå
±éäžéèšèª (CIL) ã衚瀺ããŸãã åç CIL ã¯ãã¢ã»ã³ããªããèªã¿èŸŒãŸãã CIL ãšã¯ç°ãªãæ¹æ³ã§åºåãããŸãã åç CIL ã¯ãã¡ã¿ããŒã¿ ããŒã¯ã³ã§ã¯ãªãããããŒãžã ãªããžã§ã¯ãé åå ã®ãªããžã§ã¯ããåç §ããŸãã |
|
| DumpLock [--allthreads] [--waits] | System.Threading.Lock ãªããžã§ã¯ãã«é¢ããæ å ± (ã¹ã¬ããã«ãã£ãŠä¿æãããŠãããªããžã§ã¯ã (æ¢å®) ãã¹ã¬ããã«ãã£ãŠåŸ æ©ãããŠãããªããžã§ã¯ããªã©) ã衚瀺ããŸãã |
| DumpLog [-addr<addressOfStressLog>] [<Filename>] | ã¡ã¢ãªå
ã¹ãã¬ã¹ ãã°ã®å
容ãæå®ãããã¡ã€ã«ã«æžã蟌ã¿ãŸãã ååãæå®ããªãå Žåããã®ã³ãã³ãã¯çŸåšã®ãã£ã¬ã¯ããªã« StressLog.txt ãšããååã®ãã¡ã€ã«ãäœæããŸãã ã¡ã¢ãªå ã¹ãã¬ã¹ ãã°ã¯ãããã¯ã I/O ã䜿çšããã«ã¹ãã¬ã¹ ãšã©ãŒã蚺æããã®ã«åœ¹ç«ã¡ãŸãã ã¹ãã¬ã¹ ãã°ãæå¹ã«ããã«ã¯ãHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworkã§æ¬¡ã®ã¬ãžã¹ã㪠ããŒãèšå®ããŸãã (DWORD)StressLog = 1 (DWORD)LogFacility = 0xffffffff (DWORD)StressLogSize = 65536 çç¥å¯èœãª -addr ãªãã·ã§ã³ã䜿çšãããšãæ¢å®ã®ãã°ä»¥å€ã®ã¹ãã¬ã¹ ãã°ãæå®ã§ããŸãããã€ãã£ã AOT ã¢ããªã±ãŒã·ã§ã³ã§ãµããŒããããŸãã |
| DumpMD<MethodDesc ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ãã MethodDesc æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸããIP2MD ã³ãã³ãã䜿çšããŠããããŒãžã颿°ãã MethodDesc æ§é äœã¢ãã¬ã¹ãååŸã§ããŸãã |
| DumpMT [-MD] <MethodTable ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ããã¡ãœãã ããŒãã«ã«é¢ããæ
å ±ã衚瀺ããŸãã
-MD ãªãã·ã§ã³ãæå®ãããšããªããžã§ã¯ãã§å®çŸ©ãããŠãããã¹ãŠã®ã¡ãœããã®äžèЧã衚瀺ãããŸãã åãããŒãžã ãªããžã§ã¯ãã«ã¯ãã¡ãœãã ããŒãã« ãã€ã³ã¿ãŒãå«ãŸããŠããŸãã |
| DumpModule [-mt] <ã¢ãžã¥ãŒã« ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ããã¢ãžã¥ãŒã«ã«é¢ããæ
å ±ã衚瀺ããŸãã
-mt ãªãã·ã§ã³ã«ã¯ãã¢ãžã¥ãŒã«ã§å®çŸ©ãããŠããåãšãã¢ãžã¥ãŒã«ã«ãã£ãŠåç
§ãããåã衚瀺ãããŸãã |
|
DumpObj [-nofields] <ãªããžã§ã¯ã ã¢ãã¬ã¹> -åã¯- ãªããžã§ã¯ã ã¢ãã¬ã¹ |
æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ãã«é¢ããæ
å ±ã衚瀺ããŸãã
DumpObj ã³ãã³ãã¯ããã£ãŒã«ããEEClass æ§é äœæ
å ±ãã¡ãœãã ããŒãã«ãããã³ãªããžã§ã¯ãã®ãµã€ãºã衚瀺ããŸããDumpStackObjects ã³ãã³ãã䜿çšããŠããªããžã§ã¯ãã®ã¢ãã¬ã¹ãååŸã§ããŸãã åã®ãã£ãŒã«ãããªããžã§ã¯ãã§ããããã CLASS ã³ãã³ããå®è¡ã§ããŸãã-
nofields ãªãã·ã§ã³ã䜿çšãããšããªããžã§ã¯ãã®ãã£ãŒã«ãã衚瀺ãããªããªããŸããããã¯ãæååãªã©ã®ãªããžã§ã¯ãã«åœ¹ç«ã¡ãŸãã |
| DumpRuntimeTypes | ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãå ã®ã©ã³ã¿ã€ã åãªããžã§ã¯ãã衚瀺ããé¢é£ããååãšã¡ãœãã ããŒãã«ãäžèŠ§è¡šç€ºããŸãã |
DumpStack [-EE] [-n] [topstack [bottomstack]] |
ã¹ã¿ã㯠ãã¬ãŒã¹ã衚瀺ããŸãã -EE ãªãã·ã§ã³ãæå®ãããšãDumpStack ã³ãã³ãã«ãããŒãžã颿°ã®ã¿ã衚瀺ãããŸãã x86 ãã©ãããã©ãŒã ã«è¡šç€ºãããã¹ã¿ã㯠ãã¬ãŒã ãå¶éããã«ã¯ã top ãã©ã¡ãŒã¿ãŒãš bottom ãã©ã¡ãŒã¿ãŒã䜿çšããŸãã-n ãªãã·ã§ã³ãæå®ãããšããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã®è¡šç€ºãç¡å¹ã«ãªããŸãã ãããã¬ãŒã«SYMOPT_LOAD_LINESãªãã·ã§ã³ãæå®ãããŠããå ŽåãSOS ã¯ãã¹ãŠã®ãããŒãžã ãã¬ãŒã ã®ã·ã³ãã«ãæ€çŽ¢ããæåããå Žåã¯å¯Ÿå¿ãããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã衚瀺ãããŸãã ãã®åäœãç¡å¹ã«ããã«ã¯ã-n (è¡çªå·ãªã) ãã©ã¡ãŒã¿ãŒãæå®ã§ããŸãã |
| dumpSig |
æå®ããã¢ãã¬ã¹ã«ãã Sig æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸãã |
| DumpSigElem<sigaddr><moduleaddr> | 眲åãªããžã§ã¯ãã® 1 ã€ã®èŠçŽ ã衚瀺ããŸãã ã»ãšãã©ã®å ŽåãDumpSig |
DumpStackObjects [-verify] [topstack [bottomstack]]-åã¯- DSO [-verify] [ topstack [bottomstack]] |
çŸåšã®ã¹ã¿ãã¯ã®å¢çå
ã§èŠã€ãã£ããã¹ãŠã®ãããŒãžã ãªããžã§ã¯ãã衚瀺ããŸãã -verify ãªãã·ã§ã³ã¯ããªããžã§ã¯ã ãã£ãŒã«ãã®åééç CLASS ãã£ãŒã«ããæ€èšŒããŸããDumpStackObject ã³ãã³ãããK (windbg) ã bt (lldb) ãªã©ã®ã¹ã¿ã㯠ãã¬ãŒã¹ ã³ãã³ããšå ±ã«ãclrstack ã³ãã³ããšå ±ã«äœ¿çšããŠãããŒã«ã«å€æ°ãšãã©ã¡ãŒã¿ãŒã®å€ã決å®ããŸãã |
| DumpVC |
æå®ããã¢ãã¬ã¹ã«ããå€ã¯ã©ã¹ã®ãã£ãŒã«ãã«é¢ããæ
å ±ã衚瀺ããŸãã MethodTable ãã©ã¡ãŒã¿ãŒã䜿çšãããšãDumpVC ã³ãã³ãã§ãã£ãŒã«ããæ£ããè§£éã§ããŸãã å€ã¯ã©ã¹ã«ã¯ãæåã®ãã£ãŒã«ããšããŠã¡ãœãã ããŒãã«ããããŸããã |
| EEHeap[-gc][-loader] | å
éšã©ã³ã¿ã€ã ããŒã¿æ§é ã«ãã£ãŠæ¶è²»ãããããã»ã¹ ã¡ã¢ãªã«é¢ããæ
å ±ã衚瀺ããŸãã -gc ãªãã·ã§ã³ãš -loader ãªãã·ã§ã³ã䜿çšãããšããã®ã³ãã³ãã®åºåãã¬ããŒãž ã³ã¬ã¯ã¿ãŒãŸãã¯ããŒããŒã®ããŒã¿æ§é ã«å¶éãããŸãã ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã®æ å ±ã«ã¯ããããŒãžã ããŒãå ã®åã»ã°ã¡ã³ãã®ç¯å²ãäžèŠ§è¡šç€ºãããŸãã ãã€ã³ã¿ãŒã -gc ã«ãã£ãŠæå®ãããã»ã°ã¡ã³ãç¯å²å ã«ããå Žåããã€ã³ã¿ãŒã¯ãªããžã§ã¯ã ãã€ã³ã¿ãŒã§ãã |
| EEStack[-short][-EE] | ããã»ã¹å
ã®ãã¹ãŠã®ã¹ã¬ããã§ DumpStack ã³ãã³ããå®è¡ããŸãã -EE ãªãã·ã§ã³ã¯ãDumpStack ã³ãã³ãã«çŽæ¥æž¡ãããŸãã -short ãã©ã¡ãŒã¿ãŒã¯ãåºåãæ¬¡ã®çš®é¡ã®ã¹ã¬ããã«å¶éããŸãã ããã¯ãããã¹ã¬ããã ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãèš±å¯ããããã«ã¹ããŒã«ããã¹ã¬ããã çŸåšãããŒãžã ã³ãŒãå ã«ããã¹ã¬ããã |
| EHInfo [<MethodDesc ã¢ãã¬ã¹>] [<ã³ãŒã ã¢ãã¬ã¹>] | æå®ããã¡ãœããã®äŸå€åŠçãããã¯ã衚瀺ããŸãã ãã®ã³ãã³ãã¯ãå¥ããã㯠(try ãããã¯) ãšãã³ãã©ãŒ ããã㯠(catch ãããã¯) ã®ã³ãŒã ã¢ãã¬ã¹ãšãªãã»ããã衚瀺ããŸãã |
| FAQ | ããå¯ãããã質åã衚瀺ããŸãã
dotnet-dumpã§ã¯ãµããŒããããŠããŸããã |
| FinalizeQueue [-detail] |[-allReady][-short] | æçµåŠçã«ç»é²ãããŠãããã¹ãŠã®ãªããžã§ã¯ãã衚瀺ããŸãã -detail ãªãã·ã§ã³ã«ã¯ãã¯ãªãŒã³ã¢ãããå¿ èŠãª SyncBlocks ã«é¢ããè¿œå æ
å ±ãšãã¯ãªãŒã³ã¢ãããåŸ
æ©ãã RuntimeCallableWrappers (RCW) ã衚瀺ãããŸãã ãããã®ããŒã¿æ§é ã¯ã©ã¡ãããå®è¡æã«ãã¡ã€ãã©ã€ã¶ãŒ ã¹ã¬ããã«ãã£ãŠãã£ãã·ã¥ããã³ã¯ãªãŒã³ã¢ãããããŸãã-allReady ãªãã·ã§ã³ã¯ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«ãã£ãŠæ¢ã«ããŒã¯ãããŠããããæ¬¡ã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã«ãã£ãŠããŒã¯ããããã«é¢ä¿ãªããæçµåŠçã®æºåãã§ããŠãããã¹ãŠã®ãªããžã§ã¯ãã衚瀺ããŸãã "æçµåŠçã®æºåå®äº" ãªã¹ãã«å«ãŸãããªããžã§ã¯ãã¯ãã«ãŒãåãããªããªã£ããã¡ã€ãã©ã€ãºå¯èœãªãªããžã§ã¯ãã§ãã ãã®ãªãã·ã§ã³ã¯ããã¡ã€ãã©ã€ãºå¯èœãªãã¥ãŒå
ã®ãã¹ãŠã®ãªããžã§ã¯ãããŸã ã«ãŒãåãããŠãããã©ãããæ€èšŒãããããã³ã¹ããé«ããªãå¯èœæ§ããããŸãã-short ãªãã·ã§ã³ã¯ãåºåãåãªããžã§ã¯ãã®ã¢ãã¬ã¹ã«å¶éããŸãã
-allReadyã§äœ¿çšãããå Žåã¯ãã«ãŒãåãããªããªã£ããã¡ã€ãã©ã€ã¶ãŒãæã€ãã¹ãŠã®ãªããžã§ã¯ããåæããŸãã åå¥ã«äœ¿çšãããå Žåã¯ããã¡ã€ãã©ã€ãºå¯èœãªãã¥ãŒããã³ "æçµåŠçã®æºåå®äº" ãã¥ãŒå
ã®ãã¹ãŠã®ãªããžã§ã¯ããäžèŠ§è¡šç€ºãããŸãã |
| FindAppDomain<Object ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã決å®ããŸãã |
| æå®ããäžä»£ã®æ¬¡ã®ã³ã¬ã¯ã·ã§ã³ã§ããããã¬ãŒããããã°å¯Ÿè±¡ãŠãŒã¶ãŒãäžæããŸãã ãã®å¹æã¯ãäžæãçºçãããšããã«ãªã»ãããããŸãã æ¬¡ã®ã³ã¬ã¯ã·ã§ã³ã§äžæããã«ã¯ãã³ãã³ããåå®è¡ããå¿
èŠããããŸãã ãã®ã³ãã³ã |
|
| GCHandles[- perdomain] | ããã»ã¹å
ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã«é¢ããçµ±èšæ
å ±ã衚瀺ããŸãã -perdomain ãªãã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ããšã«çµ±èšãé 眮ããŸãã GCHandles ã³ãã³ãã䜿çšããŠãã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã« ã®ãªãŒã¯ã«ãã£ãŠçºçããã¡ã¢ãª ãªãŒã¯ãæ€åºããŸãã ããšãã°ãã³ãŒãã倧ããªé åãä¿æãããšãã¡ã¢ãª ãªãŒã¯ãçºçããŸããããã¯ã匷åãªã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ãåŒãç¶ããããæããŠããããã³ãã«ãè§£æŸãããã«ç Žæ£ãããããã§ãã Windows ã§ã®ã¿ãµããŒããããŸãã |
| GCHandleLeaks | ããã»ã¹å ã®åŒ·åãªã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ãšãã³çããããã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ãžã®åç §ãã¡ã¢ãªã§æ€çŽ¢ããçµæã衚瀺ããŸãã ãã³ãã«ãèŠã€ãã£ãå ŽåãGCHandleLeaks ã³ãã³ãã¯åç §ã®ã¢ãã¬ã¹ã衚瀺ããŸãã ã¡ã¢ãªå ã«ãã³ãã«ãèŠã€ãããªãå Žåããã®ã³ãã³ãã¯éç¥ã衚瀺ããŸãã Windows ã§ã®ã¿ãµããŒããããŸãã |
| GCInfo<MethodDesc ã¢ãã¬ã¹><Code ã¢ãã¬ã¹> | ã¬ãžã¹ã¿ãŸãã¯ã¹ã¿ãã¯ã®å Žæã«ãããŒãžã ãªããžã§ã¯ããå«ãŸããã¿ã€ãã³ã°ã瀺ãããŒã¿ã衚瀺ããŸãã ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãçºçããå Žåãã³ã¬ã¯ã¿ãŒã¯ãæ°ãããªããžã§ã¯ã ãã€ã³ã¿ãŒå€ã§ãªããžã§ã¯ããæŽæ°ã§ããããã«ããªããžã§ã¯ããžã®åç §ã®å Žæãèªèããå¿ èŠããããŸãã |
| GCRoot [-nostacks] [-all] <ãªããžã§ã¯ã ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ããžã®åç
§ (ãŸãã¯ã«ãŒã) ã«é¢ããæ
å ±ã衚瀺ããŸãã GCRoot ã³ãã³ãã¯ããããŒãžã ããŒãå šäœãšãã³ãã« ããŒãã«ã§ãã¹ã¿ãã¯äžã®ä»ã®ãªããžã§ã¯ããšãã³ãã«å ã®ãã³ãã«ã調ã¹ãŸãã ãã®åŸãåã¹ã¿ãã¯ã§ãªããžã§ã¯ããžã®ãã€ã³ã¿ãŒãæ€çŽ¢ããããã¡ã€ãã©ã€ã¶ãŒ ãã¥ãŒãæ€çŽ¢ãããŸãã ãã®ã³ãã³ãã¯ãã¹ã¿ã㯠ã«ãŒããæå¹ãç Žæ£ããããã倿ããŸããã clrstack ãš U ã³ãã³ãã䜿çšããŠãã¹ã¿ã㯠ã«ãŒãããŸã 䜿çšãããŠãããã©ããã倿ããããã«ãããŒã«ã«ãŸãã¯åŒæ°ã®å€ãå±ãããã¬ãŒã ãéã¢ã»ã³ãã«ããŸãã -nostacks ãªãã·ã§ã³ã¯ãã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ãšå°éå¯èœãªãªããžã§ã¯ãã«æ€çŽ¢ãå¶éããŸãã -all ãªãã·ã§ã³ã䜿çšãããšãäžæã®ã«ãŒãã ãã§ãªãããã¹ãŠã®ã«ãŒãã匷å¶çã«è¡šç€ºãããŸãã |
| GCWhere<ãªããžã§ã¯ã ã¢ãã¬ã¹> | æž¡ãããåŒæ°ã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãå ã®å Žæãšãµã€ãºã衚瀺ããŸãã åŒæ°ããããŒãžã ããŒãã«ãããæå¹ãªãªããžã§ã¯ã ã¢ãã¬ã¹ã§ãªãå Žåããµã€ãºã¯ 0 (ãŒã) ãšããŠè¡šç€ºãããŸãã |
ãã«ã (soshelp) [<ã³ãã³ã>] [faq] |
ãã©ã¡ãŒã¿ãŒãæå®ãããŠããªãå Žåã«äœ¿çšå¯èœãªãã¹ãŠã®ã³ãã³ãã衚瀺ããããæå®ããã³ãã³ãã«é¢ãã詳现ãªãã«ãæ
å ±ã衚瀺ããŸããfaq ãã©ã¡ãŒã¿ãŒã«ã¯ãããå¯ãããã質åã«å¯Ÿããåçã衚瀺ãããŸãã |
| HeapStat [-inclUnrooted | -iu] | åããŒãã®äžä»£ãµã€ãºãšãåããŒãã®åäžä»£ã®åèšç©ºãé åã衚瀺ããŸãã inclUnrooted ãªãã·ã§ã³ãæå®ãããŠããå Žåãã¬ããŒãã«ã¯ãã«ãŒãåãããªããªã£ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãã®ãããŒãžã ãªããžã§ã¯ãã«é¢ããæ å ±ãå«ãŸããŸãã Windows ã§ã®ã¿ãµããŒããããŸãã |
| HistClear |
Hist ã³ãã³ãã®ãã¡ããªã§äœ¿çšããããã¹ãŠã®ãªãœãŒã¹ãè§£æŸããŸããäžè¬ã«ã HistClearãæç€ºçã«åŒã³åºãå¿
èŠã¯ãããŸãããããã¯ãå HistInit ãåã®ãªãœãŒã¹ãã¯ãªãŒã³ã¢ããããããã§ãã |
| HistInit | ãããã°å¯Ÿè±¡ã«ä¿åãããã¹ãã¬ã¹ ãã°ãã SOS æ§é äœãåæåããŸãã |
| HistObj<obj_address> | ãã¹ãŠã®ã¹ãã¬ã¹ ãã°åé 眮ã¬ã³ãŒãã調ã¹ãåŒæ°ãšããŠæž¡ãããã¢ãã¬ã¹ã«ã€ãªããå¯èœæ§ãããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³åé 眮ã®ãã§ãŒã³ã衚瀺ããŸãã |
| HistObjFind<obj_address> | æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ããåç §ãããã¹ãŠã®ãã° ãšã³ããªã衚瀺ããŸãã |
| ã«ãŒã |
æå®ããã«ãŒãã®ææ Œãšåé
眮ã®äž¡æ¹ã«é¢é£ããæ
å ±ã衚瀺ããŸãã ã«ãŒãå€ã䜿çšããŠãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãä»ãããªããžã§ã¯ãã®ç§»åã远跡ã§ããŸãã |
| IP2MD (ip2md) <Code ã¢ãã¬ã¹> | JIT ã³ã³ãã€ã«ãããã³ãŒãå
ã®æå®ããã¢ãã¬ã¹ã«ãã MethodDesc æ§é äœã衚瀺ããŸãã |
| ListNearObj (lno) <obj_address> | æå®ããã¢ãã¬ã¹ã®ååŸã®ãªããžã§ã¯ãã衚瀺ããŸãã ãã®ã³ãã³ãã¯ã(æå¹ãªã¡ãœãã ããŒãã«ã«åºã¥ããŠ) ãããŒãžã ãªããžã§ã¯ãã®æå¹ãªå é ãšãåŒæ°ã¢ãã¬ã¹ã®åŸã«ãããªããžã§ã¯ãã®ããã«èŠããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãå ã®ã¢ãã¬ã¹ãæ€çŽ¢ããŸãã Windows ã§ã®ã¿ãµããŒããããŸãã |
| MinidumpMode[0][1] | ãããã³ãã䜿çšããå Žåã«å®å
šã§ãªãã³ãã³ããå®è¡ã§ããªãããã«ããŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
|
Name2EE (name2ee) <ã¢ãžã¥ãŒã«å><åãŸãã¯ã¡ãœããå> -åã¯- Name2EE<ã¢ãžã¥ãŒã«å>!<åãŸãã¯ã¡ãœããåã®> |
æå®ããã¢ãžã¥ãŒã«å
ã®æå®ããåãŸãã¯ã¡ãœããã® MethodTable æ§é äœãš EEClass æ§é äœã衚瀺ããŸããæå®ããã¢ãžã¥ãŒã«ãããã»ã¹ã«èªã¿èŸŒãå¿ èŠããããŸãã é©åãªååãååŸããã«ã¯ãIldasm.exe (IL éã¢ã»ã³ãã©ãŒ)ã䜿çšããŠã¢ãžã¥ãŒã«ãåç §ããŸãã * ãã¢ãžã¥ãŒã«åãã©ã¡ãŒã¿ãŒãšããŠæž¡ããŠãèªã¿èŸŒãŸãããã¹ãŠã®ãããŒãžã ã¢ãžã¥ãŒã«ãæ€çŽ¢ããããšãã§ããŸãã
ã¢ãžã¥ãŒã«å ãã©ã¡ãŒã¿ãŒã«ã¯ãmscorlib ã image00400000ãªã©ãã¢ãžã¥ãŒã«ã®ãããã¬ãŒã®ååãæå®ããããšãã§ããŸãããã®ã³ãã³ãã¯ã< module>!<type>ã® Windows ãããã¬ãŒæ§æããµããŒãããŠããŸãã åã¯å®å
šä¿®é£Ÿã§ããå¿
èŠããããŸãã |
| ObjSize [<ãªããžã§ã¯ã ã¢ãã¬ã¹>] |[-aggregate][-stat] | æå®ãããªããžã§ã¯ãã®ãµã€ãºã衚瀺ããŸãã ãã©ã¡ãŒã¿ãŒãæå®ããªãå ŽåãObjSize ã³ãã³ãã¯ããããŒãžã ã¹ã¬ããã§èŠã€ãã£ããã¹ãŠã®ãªããžã§ã¯ãã®ãµã€ãºã衚瀺ããããã»ã¹å
ã®ãã¹ãŠã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã衚瀺ãããããã®ãã³ãã«ãæããªããžã§ã¯ãã®ãµã€ãºãåèšããŸãã
ObjSize ã³ãã³ãã«ã¯ã芪ã«å ããŠããã¹ãŠã®åãªããžã§ã¯ãã®ãµã€ãºãå«ãŸããŸãã -aggregate ãªãã·ã§ã³ã -stat åŒæ°ãšå ±ã«äœ¿çšããŠããŸã ã«ãŒãåãããŠããåã®è©³çްãã¥ãŒãååŸã§ããŸãã !dumpheap -stat Windows ã§ã®ã¿ãµããŒããããŸãã |
|
PrintException [-nested] [-lines] [<Exception ãªããžã§ã¯ã ã¢ãã¬ã¹>] -åã¯- PE [-nested] [<äŸå€ãªããžã§ã¯ã ã¢ãã¬ã¹>] |
æå®ããã¢ãã¬ã¹ã«ãã Exception ã¯ã©ã¹ããæŽŸçããä»»æã®ãªããžã§ã¯ãã®ãã£ãŒã«ãã衚瀺ããã³æžåŒèšå®ããŸãã ã¢ãã¬ã¹ãæå®ããªãå ŽåãPrintException ã³ãã³ãã¯ãçŸåšã®ã¹ã¬ããã§ã¹ããŒãããæåŸã®äŸå€ã衚瀺ããŸãã -nested ãªãã·ã§ã³ã¯ãå ¥ãåã«ãªã£ãäŸå€ãªããžã§ã¯ãã«é¢ãã詳现ã衚瀺ããŸãã -lines ãªãã·ã§ã³ã䜿çšãããšããœãŒã¹æ å ±ã衚瀺ãããŸã (䜿çšå¯èœãªå Žå)ã ãã®ã³ãã³ãã䜿çšãããšããã€ããªé åã§ãã _stackTrace ãã£ãŒã«ãã®æžåŒèšå®ãšè¡šç€ºãè¡ãããšãã§ããŸãã |
| ProcInfo[-env][-time][-mem] | ããã»ã¹ãã«ãŒãã« CPU æéãã¡ã¢ãªäœ¿çšéã®çµ±èšæ å ±ã®ç°å¢å€æ°ã衚瀺ããŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
| RCWCleanupList<RCWCleanupList ã¢ãã¬ã¹> | ã¯ãªãŒã³ã¢ãããåŸ æ©ããŠããæå®ããã¢ãã¬ã¹ã«ããã©ã³ã¿ã€ã åŒã³åºãå¯èœã©ãããŒã®äžèЧã衚瀺ããŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
| SaveModule |
æå®ããã¢ãã¬ã¹ã®ã¡ã¢ãªã«èªã¿èŸŒãŸããã€ã¡ãŒãžããæå®ãããã¡ã€ã«ã«æžã蟌ã¿ãŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
| SetHostRuntime [ runtime-directory<>] | ãã®ã³ãã³ãã¯ããããã¬ãŒ (LLDB) ã§ SOS ã®äžéšãšããŠå®è¡ããããããŒãžã ã³ãŒãããã¹ãããããã«äœ¿çšãã .NET ã©ã³ã¿ã€ã ãžã®ãã¹ãèšå®ããŸãã ã©ã³ã¿ã€ã ã¯ãããŒãžã§ã³ 2.1.0 以äžã§ããå¿
èŠããããŸãã ãã£ã¬ã¯ããªã«ã¹ããŒã¹ãããå Žåã¯ãäžéåŒçšç¬Š (') ã䜿çšããå¿
èŠããããŸãã éåžžãSOS ã¯ãã€ã³ã¹ããŒã«ãããŠãã .NET ã©ã³ã¿ã€ã ãæ€çŽ¢ããŠãããŒãžã ã³ãŒããèªåçã«å®è¡ããããšããŸããã倱æããå Žåã¯ãã®ã³ãã³ãã䜿çšã§ããŸãã æ¢å®ã§ã¯ããããã°äžã®åãã©ã³ã¿ã€ã (libcoreclr) ã䜿çšããŸãã ãããã°äžã®æ¢å®ã®ã©ã³ã¿ã€ã ã SOS ã³ãŒããå®è¡ããã®ã«ååã«æ©èœããŠããªãå ŽåããŸãã¯ããŒãžã§ã³ã 2.1.0 æªæºã®å Žåã¯ããã®ã³ãã³ãã䜿çšããŸãã SOS ã³ãã³ãã®å®è¡æã«æ¬¡ã®ãšã©ãŒ ã¡ãã»ãŒãžã衚瀺ãããå Žåã¯ããã®ã³ãã³ãã䜿çšããŠãã¹ã 2.1.0 以äžã® .NET ã©ã³ã¿ã€ã ã«èšå®ããŸãã (lldb) clrstackError: Fail to initialize CoreCLR 80004005 ClrStack failed(lldb) sethostruntime /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.6ã³ãã³ã ã·ã§ã«ã§ "dotnet --info" ã䜿çšããŠãã€ã³ã¹ããŒã«ãããŠãã .NET ã©ã³ã¿ã€ã ã®ãã¹ãèŠã€ããããšãã§ããŸãã |
| SetSymbolServer [-ms] [-disable] [-log] [-loadsymbols] [<ãã£ãã·ã¥ ãã¹>] [-directory<search-directory>] [-sympath<windows-symbol-path>] [<symbol-server-URL>] | ã·ã³ãã« ãµãŒããŒã®ããŠã³ããŒãã®ãµããŒããæå¹ã«ããŸãã -ms ãªãã·ã§ã³ã䜿çšãããšããããªã㯠Microsoft ã·ã³ãã« ãµãŒããŒããããŠã³ããŒãã§ããŸãã -disable ãªãã·ã§ã³ã䜿çšãããšãã·ã³ãã«ããŠã³ããŒãã®ãµããŒããæå¹ã«ãªããŸãã -cache<cache-path> ãªãã·ã§ã³ã¯ãã·ã³ãã« ãã£ãã·ã¥ ãã£ã¬ã¯ããªãæå®ããŸãã æ¢å®å€ã¯ $HOME/.dotnet/symbolcache (æå®ãããŠããªãå Žå) ã§ãã -directory ãªãã·ã§ã³ã¯ãã·ã³ãã«ãæ€çŽ¢ããããã®ãã¹ã远å ããŸãã è€æ°ã®å€ãæå®ã§ããŸãã -sympath ãªãã·ã§ã³ã¯ãWindows ã·ã³ãã« ãã¹åœ¢åŒã§ãµãŒããŒããã£ãã·ã¥ãããã³ãã£ã¬ã¯ã㪠ãã¹ã远å ããŸãã -log ãªãã·ã§ã³ã䜿çšãããšãã·ã³ãã«ã®ããŠã³ããŒã ãã°ãæå¹ã«ãªããŸãã -loadsymbols ãªãã·ã§ã³ã¯ãã©ã³ã¿ã€ã ã®ãã€ãã£ã .NET ã·ã³ãã«ã®ããŠã³ããŒãã詊ã¿ãŸãã lldb ãš dotnet-dump ã§ãµããŒããããŸãã |
| SOSFlush ã |
å éš SOS ãã£ãã·ã¥ããã©ãã·ã¥ããŸãã |
| SOSStatus [-reset] | å éš SOS ã®ç¶æ ã衚瀺ããããå éšãã£ãã·ã¥ç¶æ ããªã»ããããŸãã |
| StopOnException [-derived] [-create | -create2] <äŸå€><æ¬äŒŒã¬ãžã¹ã¿çªå·> | æå®ããäŸå€ãã¹ããŒããããšãã«ãããã¬ãŒã忢ããä»ã®äŸå€ãã¹ããŒããããšãã«å®è¡ãç¶è¡ããŸãã -derived ãªãã·ã§ã³ã¯ãæå®ããäŸå€ãšãæå®ããäŸå€ããæŽŸçãããã¹ãŠã®äŸå€ããã£ããããŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
| SyncBlk [-all | <syncblk çªå·>] | æå®ãã SyncBlock æ§é äœããŸãã¯ãã¹ãŠã® SyncBlock æ§é äœã衚瀺ããŸãã åŒæ°ãæž¡ããªãå ŽåãSyncBlk ã³ãã³ãã¯ãã¹ã¬ãããææãããªããžã§ã¯ãã«å¯Ÿå¿ãã SyncBlock æ§é ã衚瀺ããŸããSyncBlock æ§é äœã¯ããã¹ãŠã®ãªããžã§ã¯ãã«å¯ŸããŠäœæããå¿
èŠã®ãªãè¿œå æ
å ±ã®ã³ã³ãããŒã§ãã COM çžäºéçšããŒã¿ãããã·ã¥ ã³ãŒããããã³ã¹ã¬ãã ã»ãŒããªæäœã®ããã¯æ
å ±ãä¿æã§ããŸãã |
| ThreadPool | ãã¥ãŒå ã®äœæ¥èŠæ±ã®æ°ãå®äºããŒã ã¹ã¬ããã®æ°ãã¿ã€ããŒã®æ°ãªã©ããããŒãžã ã¹ã¬ãã ããŒã«ã«é¢ããæ å ±ã衚瀺ããŸãã |
| ã¹ã¬ãã (clrthreads) [-live] [-special] | ããã»ã¹å
ã®ãã¹ãŠã®ãããŒãžã ã¹ã¬ããã衚瀺ããŸãã ã¹ã¬ãã ã³ãã³ãã¯ããããã¬ãŒã®ç瞮圢 IDãCLR ã¹ã¬ãã IDããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã¹ã¬ãã ID ã衚瀺ããŸãã ããã«ãThreads ã³ãã³ãã«ã¯ãã¹ã¬ãããå®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã瀺ã Domain åãCOM ã¢ããŒãã¡ã³ã ã¢ãŒãã衚瀺ãã APT åãã¹ã¬ããã§ã¹ããŒãããæåŸã®äŸå€ã衚瀺ãã Exception åã衚瀺ãããŸãã -live ãªãã·ã§ã³ã«ã¯ãã©ã€ã ã¹ã¬ããã«é¢é£ä»ããããŠããã¹ã¬ããã衚瀺ãããŸãã -special ãªãã·ã§ã³ã«ã¯ãCLR ã«ãã£ãŠäœæããããã¹ãŠã®ç¹æ®ãªã¹ã¬ããã衚瀺ãããŸãã ç¹æ®ãªã¹ã¬ããã«ã¯ãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ã¹ã¬ãã (åæå®è¡ããã³ãµãŒã㌠ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³å )ããããã¬ãŒ ãã«ã㌠ã¹ã¬ããããã¡ã€ãã©ã€ã¶ãŒ ã¹ã¬ãããAppDomain ã¢ã³ããŒã ã¹ã¬ãããã¹ã¬ãã ããŒã« ã¿ã€ã㌠ã¹ã¬ãããå«ãŸããŸãã ãã€ãã£ã AOT ã¢ããªã±ãŒã·ã§ã³ã§ãµããŒããããŸãã |
| ThreadState <State å€ãã£ãŒã«ã> | ã¹ã¬ããã®ç¶æ
ã衚瀺ããŸãã
value ãã©ã¡ãŒã¿ãŒã¯ãã¬ããŒãåºåã® ã¹ã¬ããã® State ãã£ãŒã«ã å€ã§ãã |
| Token2EE<ã¢ãžã¥ãŒã«å><ããŒã¯ã³> | æå®ããã¢ãžã¥ãŒã«å
ã®æå®ããã¡ã¿ããŒã¿ ããŒã¯ã³ããMethodTable æ§é äœãŸã㯠MethodDesc æ§é äœã«å€æããŸããã¢ãžã¥ãŒã«åãã©ã¡ãŒã¿ãŒã® * ãæž¡ããŠãèªã¿èŸŒãŸãããã¹ãŠã®ãããŒãžã ã¢ãžã¥ãŒã«ã§ããŒã¯ã³ãããããããå
容ãèŠã€ããããšãã§ããŸãã
mscorlib ã image00400000ãªã©ãã¢ãžã¥ãŒã«ã«ãããã¬ãŒã®ååãæž¡ãããšãã§ããŸãã |
| U [-gcinfo] [-ehinfo] [-n] [-o] [-il] [-map] <MethodDesc address> | <ã³ãŒã ã¢ãã¬ã¹> | ã¡ãœããã® MethodDesc æ§é äœãã€ã³ã¿ãŒãŸãã¯ã¡ãœããæ¬äœå
ã®ã³ãŒã ã¢ãã¬ã¹ã«ãã£ãŠæå®ããããããŒãžã ã¡ãœããã®æ³šéä»ãéã¢ã»ã³ããªã衚瀺ããŸãã
U ã³ãã³ãã¯ãã¡ã¿ããŒã¿ ããŒã¯ã³ãååã«å€æããæ³šéãšå
±ã«ãã¡ãœããå
šäœãæåããæåŸãŸã§è¡šç€ºããŸãã-gcinfo ãªãã·ã§ã³ãæå®ãããšãU ã³ãã³ãã«ãã£ãŠã¡ãœããã® GCInfo æ§é ã衚瀺ãããŸãã-ehinfo ãªãã·ã§ã³ã¯ãã¡ãœããã®äŸå€æ å ±ã衚瀺ããŸãã ãã®æ å ±ã¯ãEHInfo ã³ãã³ãã䜿çšããŠååŸããããšãã§ããŸãã -n ãªãã·ã§ã³ãæå®ãããšããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã®è¡šç€ºãç¡å¹ã«ãªããŸãã ãããã¬ãŒã«ãªãã·ã§ã³ SYMOPT_LOAD_LINESãæå®ãããŠããå ŽåãSOS ã¯ãã¹ãŠã®ãããŒãžã ãã¬ãŒã ã®ã·ã³ãã«ãæ€çŽ¢ããæåããå Žåã¯ã察å¿ãããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã衚瀺ããŸãã -n ãªãã·ã§ã³ãæå®ããŠããã®åäœãç¡å¹ã«ããããšãã§ããŸãã o ãªãã·ã§ã³ã¯ãçã®ã³ãŒã ã¢ãã¬ã¹ã«å ããŠãã³ãŒãã®ãã€ãã£ã ãªãã»ããã衚瀺ããŸãã il ãªãã·ã§ã³ã¯ãé©åãªãªãã»ããã«ãã€ãã£ã ã³ãŒããæ£åšãã IL ã衚瀺ããŸãã -map ãªãã·ã§ã³ã¯ãIL ãããã€ãã£ã ãªãã»ãããžã®ã³ã³ãã€ã©ã«ãã£ãŠçæããããããã衚瀺ããŸãã -map ã«ã¯ -il ãå¿ èŠã§ããããšã«æ³šæããŠãã ããã |
| VerifyHeap ã® |
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãã§ç Žæã®å
åã確èªããèŠã€ãã£ããšã©ãŒã衚瀺ããŸãã ããŒãã®ç Žæã¯ãæ£ããæ§ç¯ãããŠããªããã©ãããã©ãŒã åŒã³åºãã«ãã£ãŠçºçããå¯èœæ§ããããŸãã ãã€ãã£ã AOT ã¢ããªã±ãŒã·ã§ã³ã§ãµããŒããããŸãã |
| VerifyObj<ãªããžã§ã¯ã ã¢ãã¬ã¹> | åŒæ°ãšããŠæž¡ããããªããžã§ã¯ãã«ç Žæã®å åããªãã確èªããŸãã Windows ã§ã®ã¿ãµããŒããããŸãã |
| VMMap | ä»®æ³ã¢ãã¬ã¹ç©ºéãèµ°æ»ããåãªãŒãžã§ã³ã«é©çšãããä¿è·ã®çš®é¡ã衚瀺ããŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
| VMStat | ä»®æ³ã¢ãã¬ã¹ç©ºéã®æŠèŠãã¥ãŒãæäŸããŸãããã®ã¡ã¢ãªã«é©çšãããä¿è·ã®çš®é¡ (空ããäºçŽæžã¿ãã³ãããæžã¿ããã©ã€ããŒãããããæžã¿ãã€ã¡ãŒãž) ããšã«äžŠã¹æ¿ããŸãã TOTAL åã«ã¯ãAVERAGE åã®çµæã« BLK COUNT åãä¹ç®ããçµæã衚瀺ãããŸãã Windbg ã§ã®ã¿ãµããŒããããŸãã |
Windows ãããã¬ãŒ
.NET ãããã¬ãŒæ¡åŒµæ©èœã䜿çšããã«ã¯ãWinDbg/dbg ãããã¬ãŒ ã«èªã¿èŸŒã¿ãWindows ãããã¬ãŒå ã§ã³ãã³ããå®è¡ããŸãã ã³ãã³ãã¯ãã©ã€ã ããã»ã¹ãŸãã¯ãã³ãã§äœ¿çšã§ããŸãã
ãããã°äžã®ããã»ã¹ã« .NET ã©ã³ã¿ã€ã (coreclr.dll ãŸã㯠libcoreclr.so) ãå«ãŸããŠããå ŽåãWindbg ã¯æ¡åŒµæ©èœãèªåçã«èªã¿èŸŒãå¿ èŠããããŸãã
LLDB ãããã¬ãŒ
LLDB çšã® .NET ãããã¬ãŒæ¡åŒµæ©èœãæ§æããæé ã«ã€ããŠã¯ãdotnet-debugger-extensions
æ¢å®ã§ã¯ããsos [command_name]ããšå
¥åãããšããã¹ãŠã®ã³ãã³ãã«ã¢ã¯ã»ã¹ã§ããŸãã ãã ããäžè¬çãªã³ãã³ãã¯ãšã€ãªã¢ã¹åãããŠãããããsos ãã¬ãã£ãã¯ã¹ã¯å¿
èŠãããŸããã
| åœä»€ | æ©èœ |
|---|---|
analyzeoom |
GC ããŒããžã®å²ãåœãŠèŠæ±ã§çºçããæåŸã® OOM ã®æ å ±ã衚瀺ããŸãã |
bpmd |
æå®ããã¢ãžã¥ãŒã«å ã®æå®ãããããŒãžã ã¡ãœããã«ãã¬ãŒã¯ãã€ã³ããäœæããŸãã |
clrmodules |
ããã»ã¹å ã®ãããŒãžã ã¢ãžã¥ãŒã«ãäžèŠ§è¡šç€ºããŸãã |
clrstack |
ãããŒãžã ã³ãŒãã®ã¿ã®ã¹ã¿ã㯠ãã¬ãŒã¹ãæäŸããŸãã |
clrthreads |
å®è¡äžã®ãããŒãžã ã¹ã¬ãããäžèŠ§è¡šç€ºããŸãã |
clru |
ãããŒãžã ã¡ãœããã®æ³šéä»ãéã¢ã»ã³ããªã衚瀺ããŸãã |
dbgout |
å
éš SOS ãã°èšé²ãæå¹/ç¡å¹ (-off) ããŸãã |
dso |
çŸåšã®ã¹ã¿ãã¯ã®å¢çå ã§èŠã€ãã£ããã¹ãŠã®ãããŒãžã ãªããžã§ã¯ãã衚瀺ããŸãã |
dumpalc |
æå®ãããªããžã§ã¯ããèªã¿èŸŒãŸããåéå¯èœãª AssemblyLoadContext ã«é¢ãã詳现ã衚瀺ããŸãã |
dumparray |
ãããŒãžãé åã«é¢ãã詳现ã衚瀺ããŸãã |
dumpasync |
ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãäžã®éåæã¹ããŒã ãã·ã³ã«é¢ããæ å ±ã衚瀺ããŸãã |
dumpassembly |
ã¢ã»ã³ããªã«é¢ãã詳现ã衚瀺ããŸãã |
dumpclass |
æå®ããã¢ãã¬ã¹ã® EEClass æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸãã |
dumpconcurrentdictionary |
åæèŸæžã®å 容ã衚瀺ããŸãã |
dumpconcurrentqueue |
åæå®è¡ãã¥ãŒã®å 容ã衚瀺ããŸãã |
dumpdelegate |
ããªã²ãŒãã«é¢ããæ å ±ã衚瀺ããŸãã |
dumpdomain |
ãã¹ãŠã® AppDomain ãŸãã¯æå®ããã¢ã»ã³ããªå ã®ãã¹ãŠã®ã¢ã»ã³ããªã«é¢ããæ å ±ã衚瀺ããŸãã |
dumpgcdata |
GC ããŒã¿ã«é¢ããæ å ±ã衚瀺ããŸãã |
dumpgen |
æå®ããäžä»£ã®ããŒã ã³ã³ãã³ãã衚瀺ããŸãã |
dumpheap |
ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ããŒãã«é¢ããæ å ±ãšããªããžã§ã¯ãã«é¢ããã³ã¬ã¯ã·ã§ã³çµ±èšæ å ±ã衚瀺ããŸãã |
dumpil |
ãããŒãžã ã¡ãœããã«é¢é£ä»ããããŠããå ±éäžéèšèª (CIL) ã衚瀺ããŸãã |
dumplock |
System.Threading.Lock ãªããžã§ã¯ãã«é¢ããæ å ± (ã¹ã¬ããã«ãã£ãŠä¿æãããŠãããªããžã§ã¯ã (æ¢å®) ãã¹ã¬ããã«ãã£ãŠåŸ æ©ãããŠãããªããžã§ã¯ããªã©) ã衚瀺ããŸãã ãã®ã³ãã³ãã¯ã.NET ãããã¬ãŒæ¡åŒµæ©èœ ã§ã®ã¿äœ¿çšã§ããŸãã |
dumplog |
ã¡ã¢ãªå ã¹ãã¬ã¹ ãã°ã®å 容ãæå®ãããã¡ã€ã«ã«æžã蟌ã¿ãŸãã |
dumpmd |
æå®ããã¢ãã¬ã¹ã® MethodDesc æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸãã |
dumpmodule |
æå®ããã¢ãã¬ã¹ã«ããã¢ãžã¥ãŒã«ã«é¢ããæ å ±ã衚瀺ããŸãã |
dumpmt |
æå®ããã¢ãã¬ã¹ã«ããã¡ãœãã ããŒãã«ã«é¢ããæ å ±ã衚瀺ããŸãã |
dumpobj |
æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ãã®æ å ±ã衚瀺ããŸãã |
dumpruntimetypes |
GC ããŒãå ã®ãã¹ãŠã® System.RuntimeType ãªããžã§ã¯ããæ€çŽ¢ããåç §ããååãš MethodTable ãåºåããŸãã |
dumpsig |
<sigaddr> <moduleaddr>ã§æå®ãããã¡ãœãããŸãã¯ãã£ãŒã«ãã®ã·ã°ããã£ããã³ãããŸãã |
dumpsigelem |
眲åãªããžã§ã¯ãã® 1 ã€ã®èŠçŽ ããã³ãããŸãã |
dumpstack |
ãã€ãã£ãã¹ã¿ãã¯ãã¬ãŒã¹ãšãããŒãžãã¹ã¿ãã¯ãã¬ãŒã¹ã衚瀺ããŸãã |
dumpstackobjects |
çŸåšã®ã¹ã¿ãã¯ã®å¢çå ã§èŠã€ãã£ããã¹ãŠã®ãããŒãžã ãªããžã§ã¯ãã衚瀺ããŸãã |
dumpvc |
å€ã¯ã©ã¹ã®ãã£ãŒã«ãã«é¢ããæ å ±ã衚瀺ããŸãã |
eeheap |
å éšã©ã³ã¿ã€ã ããŒã¿æ§é ã«ãã£ãŠäœ¿çšãããããã»ã¹ ã¡ã¢ãªã«é¢ããæ å ±ã衚瀺ããŸãã |
eestack |
ããã»ã¹å
ã®ãã¹ãŠã®ã¹ã¬ããã§ dumpstack ãå®è¡ããŸãã |
eeversion |
ã©ã³ã¿ã€ã ãš SOS ã®ããŒãžã§ã³ã«é¢ããæ å ±ã衚瀺ããŸãã |
ehinfo |
JIT ã§åŠçããã¡ãœããã®äŸå€åŠçãããã¯ã衚瀺ããŸãã |
finalizequeue |
æçµåŠçã«ç»é²ãããŠãããã¹ãŠã®ãªããžã§ã¯ãã衚瀺ããŸãã |
findappdomain |
GC ãªããžã§ã¯ãã® AppDomain ã®è§£æ±ºã詊ã¿ãŸãã |
findroots |
GC ã³ã¬ã¯ã·ã§ã³å šäœã®ãªããžã§ã¯ã ã«ãŒããæ€çŽ¢ããŠè¡šç€ºããŸãã |
gchandles |
ããã»ã¹å ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã«é¢ããçµ±èšæ å ±ã衚瀺ããŸãã |
gcheapstat |
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«é¢ããçµ±èšæ å ±ã衚瀺ããŸãã |
gcinfo |
ã¡ãœããã® JIT GC ãšã³ã³ãŒãã衚瀺ããŸãã |
gcroot |
æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ããžã®åç § (ãŸãã¯ã«ãŒã) ã«é¢ããæ å ±ã衚瀺ããŸãã |
gcwhere |
æå®ããã¢ãã¬ã¹ã® GC ããŒãå ã®å Žæã衚瀺ããŸãã |
histclear |
Hist ã³ãã³ãã®ãã¡ããªã«ãã£ãŠäœ¿çšããããã¹ãŠã®ãªãœãŒã¹ãè§£æŸããŸãã |
histinit |
ãããã°å¯Ÿè±¡ã«ä¿åãããã¹ãã¬ã¹ ãã°ãã SOS æ§é äœãåæåããŸãã |
histobj |
ãã¹ãŠã®ã¹ãã¬ã¹ ãã°åé 眮ã¬ã³ãŒãã調ã¹ãåŒæ°ãšããŠæž¡ãããã¢ãã¬ã¹ã«ã€ãªããå¯èœæ§ãããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³åé 眮ã®ãã§ãŒã³ã衚瀺ããŸãã |
histobjfind |
æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ããåç §ãããã¹ãŠã®ãã° ãšã³ããªã衚瀺ããŸãã |
histroot |
æå®ããã«ãŒãã®ææ Œãšåé 眮ã®äž¡æ¹ã«é¢é£ããæ å ±ã衚瀺ããŸãã |
histstats |
ã¹ãã¬ã¹ ãã°ã®çµ±èšã衚瀺ããŸãã |
ip2md |
JIT ã³ã³ãã€ã«ãããã³ãŒãå
ã®æå®ããã¢ãã¬ã¹ã«ãã MethodDesc æ§é äœã衚瀺ããŸãã |
listnearobj |
æå®ããã¢ãã¬ã¹ã®åãšåŸã®ãªããžã§ã¯ãã衚瀺ããŸãã |
loadsymbols |
.NET ãã€ãã£ã ã¢ãžã¥ãŒã« ã·ã³ãã«ãèªã¿èŸŒã¿ãŸãã |
logging |
å éš SOS ãã°èšé²ãæå¹ãŸãã¯ç¡å¹ã«ããŸãã |
name2ee |
æå®ããã¢ãžã¥ãŒã«å
ã®æå®ããåãŸãã¯ã¡ãœããã® MethodTable ããã³ EEClass æ§é äœã衚瀺ããŸãã |
objsize |
æå®ãããªããžã§ã¯ãã®ãµã€ãºã衚瀺ããŸãã |
parallelstacks |
Visual Studio ã® [䞊åã¹ã¿ãã¯] ããã«ãšåæ§ã«ãããŒãžãããã¹ã¬ãã ã¹ã¿ãã¯ã衚瀺ããŸãã |
pathto |
<root> ãã <target>ãžã® GC ãã¹ã衚瀺ããŸãã |
pe |
æå®ããã¢ãã¬ã¹ã«ãã Exception ã¯ã©ã¹ããæŽŸçããä»»æã®ãªããžã§ã¯ãã®ãã£ãŒã«ãã衚瀺ããã³æžåŒèšå®ããŸãã |
printexception |
æå®ããã¢ãã¬ã¹ã«ãã Exception ã¯ã©ã¹ããæŽŸçããä»»æã®ãªããžã§ã¯ãã®ãã£ãŒã«ãã衚瀺ããã³æžåŒèšå®ããŸãã |
runtimes |
ã¿ãŒã²ããå ã®ã©ã³ã¿ã€ã ãäžèŠ§è¡šç€ºããããæ¢å®ã®ã©ã³ã¿ã€ã ã倿ŽããŸãã |
stoponcatch |
ã¿ãŒã²ãã ããã»ã¹ã¯ã次ã«ãããŒãžãäŸå€ãå®è¡äžã«ãã£ããããããšãã«äžæãããŸãã |
setclrpath |
coreclr dac/dbi ãã¡ã€ã«ãèªã¿èŸŒããã¹ãèšå®ããŸãã
setclrpath <path>ã |
sethostruntime |
SOS ã§ãããŒãžã ã³ãŒããå®è¡ããããã«äœ¿çšãã .NET ã©ã³ã¿ã€ã ãã£ã¬ã¯ããªãèšå®ãŸãã¯è¡šç€ºããŸãã |
setsymbolserver |
ã·ã³ãã« ãµãŒããŒã®ãµããŒããæå¹ã«ããŸãã |
setsostid |
LLDB ãæäŸããã€ã³ããã¯ã¹ã§ã¯ãªããçŸåšã® OS tid/thread ã€ã³ããã¯ã¹ãèšå®ããŸãã
setsostid <tid> <index>ã |
sos |
ããŸããŸãª coreclr ãããã° ã³ãã³ããå®è¡ããŸãã æ§æ sos <command-name> <args>ã䜿çšããŸãã 詳现ã«ã€ããŠã¯ããsoshelpããåç
§ããŠãã ããã |
soshelp |
ãã©ã¡ãŒã¿ãŒãæå®ãããŠããªãå Žåã«äœ¿çšå¯èœãªãã¹ãŠã®ã³ãã³ãã衚瀺ããããæå®ããã³ãã³ãã«é¢ãã詳现ãªãã«ãæ
å ±ã衚瀺ããŸã:soshelp <command>ã |
syncblk |
SyncBlock ãã«ããŒæ å ±ã衚瀺ããŸãã |
taskstate |
ã¿ã¹ã¯ã®ç¶æ ã人éãå€èªã§ãã圢åŒã§è¡šç€ºããŸãã |
threadpool |
ã©ã³ã¿ã€ã ã¹ã¬ãã ããŒã«ã«é¢ããæ å ±ã衚瀺ããŸãã |
threadpoolqueue |
ãã¥ãŒã«ç»é²ãããã¹ã¬ãã ããŒã«ã®äœæ¥é ç®ã衚瀺ããŸãã |
threadstate |
ã¹ã¬ããç¶æ ã®æå³ãããªãåºåããŸãã |
timerinfo |
ã¿ã€ããŒã®å®è¡ã«é¢ããæ å ±ã衚瀺ããŸãã |
token2ee |
æå®ããããŒã¯ã³ãšã¢ãžã¥ãŒã«ã® MethodTable æ§é äœãš MethodDesc æ§é äœã衚瀺ããŸãã |
traverseheap |
CLR Profiler ã§èªèããã圢åŒã§ããŒãæ å ±ããã¡ã€ã«ã«æžã蟌ã¿ãŸãã |
verifyheap |
GC ããŒãã§ç Žæã®å åã確èªããŸãã |
verifyobj |
åŒæ°ãšããŠæž¡ããããªããžã§ã¯ãã«ç Žæã®å åããªãã確èªããŸãã |
Windbg/cdb ã®äœ¿çšäŸ
| åœä»€ | 圢容 |
|---|---|
!dumparray -start 2 -length 5 -details 00ad28d0 |
ã¢ãã¬ã¹ 00ad28d0ã«ããé
åã®å
容ã衚瀺ããŸãã 衚瀺㯠2 çªç®ã®èŠçŽ ããå§ãŸãã5 ã€ã®èŠçŽ ã«å¯ŸããŠç¶è¡ãããŸãã |
!dumpassembly 1ca248 |
ã¢ãã¬ã¹ 1ca248ã«ããã¢ã»ã³ããªã®å
容ã衚瀺ããŸãã |
!dumpheap |
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãã«é¢ããæ å ±ã衚瀺ããŸãã |
!DumpLog |
ã¡ã¢ãªå ã¹ãã¬ã¹ ãã°ã®å 容ããçŸåšã®ãã£ã¬ã¯ããªã® StressLog.txt ãšãã (æ¢å®ã®) ãã¡ã€ã«ã«æžã蟌ã¿ãŸãã |
!dumpmd 902f40 |
ã¢ãã¬ã¹ MethodDescã® 902f40 æ§é ã衚瀺ããŸãã |
!dumpmodule 1caa50 |
ã¢ãã¬ã¹ 1caa50ã«ããã¢ãžã¥ãŒã«ã«é¢ããæ
å ±ã衚瀺ããŸãã |
!DumpObj a79d40 |
ã¢ãã¬ã¹ a79d40ã«ãããªããžã§ã¯ãã«é¢ããæ
å ±ã衚瀺ããŸãã |
!DumpVC 0090320c 00a79d9c |
ã¢ãã¬ã¹ 00a79d9cã®ã¡ãœãã ããŒãã«ã䜿çšããŠãã¢ãã¬ã¹ 0090320c ã®å€ã¯ã©ã¹ã®ãã£ãŒã«ãã衚瀺ããŸãã |
!eeheap -gc |
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«ãã£ãŠäœ¿çšãããããã»ã¹ ã¡ã¢ãªã衚瀺ããŸãã |
!finalizequeue |
æçµåŠçãã¹ã±ãžã¥ãŒã«ãããŠãããã¹ãŠã®ãªããžã§ã¯ãã衚瀺ããŸãã |
!findappdomain 00a79d98 |
ã¢ãã¬ã¹ 00a79d98ã«ãããªããžã§ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã決å®ããŸãã |
!gcinfo 5b68dbb8 |
çŸåšã®ããã»ã¹ã®ãã¹ãŠã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã衚瀺ããŸãã |
!name2ee unittest.exe MainClass.Main |
ã¢ãžã¥ãŒã« MethodTableã®ã¯ã©ã¹ EEClass ã® Main ã¡ãœããã® MainClass ããã³ unittest.exe æ§é äœã衚瀺ããŸãã |
!token2ee unittest.exe 02000003 |
ã¢ãžã¥ãŒã« 02000003ã®ã¢ãã¬ã¹ unittest.exe ã«ã¡ã¿ããŒã¿ ããŒã¯ã³ã«é¢ããæ
å ±ã衚瀺ããŸãã |
LLDB ã®äœ¿çšäŸ
| åœä»€ | 圢容 |
|---|---|
dumparray -start 2 -length 5 -details 00ad28d0 |
ã¢ãã¬ã¹ 00ad28d0ã«ããé
åã®å
容ã衚瀺ããŸãã 衚瀺㯠2 çªç®ã®èŠçŽ ããå§ãŸãã5 ã€ã®èŠçŽ ã«å¯ŸããŠç¶è¡ãããŸãã |
dumpassembly 1ca248 |
ã¢ãã¬ã¹ 1ca248ã«ããã¢ã»ã³ããªã®å
容ã衚瀺ããŸãã |
dumpheap |
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãã«é¢ããæ å ±ã衚瀺ããŸãã |
dumplog |
ã¡ã¢ãªå ã¹ãã¬ã¹ ãã°ã®å 容ããçŸåšã®ãã£ã¬ã¯ããªã® StressLog.txt ãšãã (æ¢å®ã®) ãã¡ã€ã«ã«æžã蟌ã¿ãŸãã |
dumpmd 902f40 |
ã¢ãã¬ã¹ MethodDescã® 902f40 æ§é ã衚瀺ããŸãã |
dumpmodule 1caa50 |
ã¢ãã¬ã¹ 1caa50ã«ããã¢ãžã¥ãŒã«ã«é¢ããæ
å ±ã衚瀺ããŸãã |
dumpobj a79d40 |
ã¢ãã¬ã¹ a79d40ã«ãããªããžã§ã¯ãã«é¢ããæ
å ±ã衚瀺ããŸãã |
dumpvc 0090320c 00a79d9c |
ã¢ãã¬ã¹ 00a79d9cã®ã¡ãœãã ããŒãã«ã䜿çšããŠãã¢ãã¬ã¹ 0090320c ã®å€ã¯ã©ã¹ã®ãã£ãŒã«ãã衚瀺ããŸãã |
eeheap -gc |
ã¬ããŒãž ã³ã¬ã¯ã¿ãŒã«ãã£ãŠäœ¿çšãããããã»ã¹ ã¡ã¢ãªã衚瀺ããŸãã |
findappdomain 00a79d98 |
ã¢ãã¬ã¹ 00a79d98ã«ãããªããžã§ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã決å®ããŸãã |
gcinfo 5b68dbb8 |
çŸåšã®ããã»ã¹ã®ãã¹ãŠã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã衚瀺ããŸãã |
name2ee unittest.exe MainClass.Main |
ã¢ãžã¥ãŒã« MethodTableã®ã¯ã©ã¹ EEClass ã® Main ã¡ãœããã® MainClass ããã³ unittest.exe æ§é äœã衚瀺ããŸãã |
token2ee unittest.exe 02000003 |
ã¢ãžã¥ãŒã« 02000003ã®ã¢ãã¬ã¹ unittest.exe ã«ã¡ã¿ããŒã¿ ããŒã¯ã³ã«é¢ããæ
å ±ã衚瀺ããŸãã |
clrthreads |
ãããŒãžã ã¹ã¬ããã衚瀺ããŸãã |
é¢é£é ç®
- .NET ã®ãã³ãã®æŠèŠ
- .NET ã§ã¡ã¢ãª ãªãŒã¯ããããã°ããæ¹æ³ã«ã€ããŠèª¬æããŸã
- ã¡ã¢ãª ãã³ãã®åéãšåæã«é¢ããããã°
- ãã³ãåæããŒã« (dotnet-dump)
- .NET ãããã¬ãŒæ¡åŒµæ©èœã€ã³ã¹ããŒã©ãŒ (dotnet-debugger-extensions)
- ããŒãåæããŒã« (dotnet-gcdump)