Note
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãµã€ã³ã€ã³ãŸãã¯ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
ãã®ããŒãžã«ã¢ã¯ã»ã¹ããã«ã¯ãæ¿èªãå¿ èŠã§ãã ãã£ã¬ã¯ããªã®å€æŽã詊ãããšãã§ããŸãã
SOS ãããã°æ¡åŒµæ©èœã䜿çšãããšãã©ã€ã ããã»ã¹ãšãã³ãã®äž¡æ¹ã§ã.NET ã©ã³ã¿ã€ã å ã§å®è¡ãããŠããã³ãŒãã«é¢ããæ å ±ã衚瀺ã§ããŸãã ãã®æ¡åŒµæ©èœã¯ dotnet ããã³ Windbg/dbg ãšå ±ã«ãã¬ã€ã³ã¹ããŒã«ãããŠãããLLDB ã§äœ¿çšããããã«ããŠã³ããŒãã§ããŸãã SOS ãããã°æ¡åŒµæ©èœã䜿çšãããšã次ã®ããšãã§ããŸãã
- ãããŒãžã ããŒãã«é¢ããæ å ±ãåéããŸãã
- ããŒãç Žæãæ¢ããŸãã
- ã©ã³ã¿ã€ã ã«ãã£ãŠäœ¿çšãããå éšããŒã¿åã衚瀺ããŸãã
- ã©ã³ã¿ã€ã å ã§å®è¡ãããŠãããã¹ãŠã®ãããŒãžã ã³ãŒãã«é¢ããæ å ±ã衚瀺ããŸãã
æ§æ
Windows ã®å Žå: ![command] [options]
Linux ããã³ macOS ã®å Žå: sos [command] [options]
å€ãã®ã³ãã³ãã«ã¯ãlldb ã®äžã«ãšã€ãªã¢ã¹ãŸãã¯ã·ã§ãŒãã«ããããããŸãã clrstack [options]
ã³ãã³ã
以äžã®ã³ãã³ãã®è¡šã¯ãHelp ãŸã㯠soshelp ã§ã䜿çšã§ããŸãã
soshelp <command> ã䜿ã£ãŠãåã
ã®ã³ãã³ã ãã«ãã䜿çšã§ããŸãã
| ã³ãã³ã | 説æ |
|---|---|
bpmd [-nofuturemodule] [<module name><method name>] [-md<MethodDesc>] -list-clear< ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãçªå·>-clearall |
æå®ããã¢ãžã¥ãŒã«ã®æå®ããã¡ãœããã«ãã¬ãŒã¯ãã€ã³ããäœæããŸãã æå®ããã¢ãžã¥ãŒã«ãšã¡ãœãããèªã¿èŸŒãŸããŠããªãå Žåããã®ã³ãã³ãã¯ãã¢ãžã¥ãŒã«ãèªã¿èŸŒãŸããJust-In-Time (JIT) ã³ã³ãã€ã«ãçµäºããããšã瀺ãéç¥ãåãåããŸã§åŸ æ©ããŠããããã¬ãŒã¯ãã€ã³ããäœæããŸãã -listã -clearãããã³ -clearall ã®åãªãã·ã§ã³ã䜿çšããŠãä¿çäžã®ãã¬ãŒã¯ãã€ã³ãã®ãªã¹ãã管çã§ããŸãã -list ãªãã·ã§ã³ã¯ãä¿çäžã®ãã¹ãŠã®ãã¬ãŒã¯ãã€ã³ãã®ãªã¹ããçæããŸãã ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãã« 0 以å€ã®ã¢ãžã¥ãŒã« ID ãããå Žåããã®ãã¬ãŒã¯ãã€ã³ãã¯ããã®ç¹å®ã®èªã¿èŸŒãŸããã¢ãžã¥ãŒã«ã®é¢æ°ã«åºæã§ãã ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãã«ãŒãã®ã¢ãžã¥ãŒã« ID ãããå Žåããã®ãã¬ãŒã¯ãã€ã³ãã¯ãŸã èªã¿èŸŒãŸããŠããªãã¢ãžã¥ãŒã«ã«é©çšãããŸãã ä¿çäžã®ãã¬ãŒã¯ãã€ã³ãããªã¹ãããåé€ããã«ã¯ã -clear ãªãã·ã§ã³ãŸã㯠-clearall ãªãã·ã§ã³ã䜿çšããŸãã |
| CLRStack[-a][-l][-p][-n][-f][-r][-all] | ãããŒãžã ã³ãŒãã®ã¿ã®ã¹ã¿ã㯠ãã¬ãŒã¹ãæäŸããŸãã -p ãªãã·ã§ã³ã¯ããããŒãžã颿°ã«æž¡ãåŒæ°ã衚瀺ããŸãã -l ãªãã·ã§ã³ã¯ããã¬ãŒã å ã®ããŒã«ã«å€æ°ã«é¢ããæ å ±ã衚瀺ããŸãã SOS ãããã°æ¡åŒµæ©èœã¯ããŒã«ã«åãååŸã§ããªããããããŒã«ã«åã®åºå㯠<ããŒã«ã« ã¢ãã¬ã¹>=<value>ã®åœ¢åŒã«ãªããŸãã -a ãªãã·ã§ã³ã¯ã -l ãš -p ã®çµã¿åããã®ã·ã§ãŒãã«ããã§ãã -n ãªãã·ã§ã³ãæå®ãããšããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã®è¡šç€ºãç¡å¹ã«ãªããŸãã ãããã¬ãŒã§ SYMOPT_LOAD_LINES ãªãã·ã§ã³ãæå®ãããŠããå ŽåãSOS ã¯ãã¹ãŠã®ãããŒãžã ãã¬ãŒã ã§ã·ã³ãã«ãæ€çŽ¢ããæåããå Žåã¯ã察å¿ãããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã衚瀺ããŸãã -n (è¡çªå·ãªã) ãã©ã¡ãŒã¿ãŒãæå®ãããšããã®åäœãç¡å¹ã«ã§ããŸãã -f ãªãã·ã§ã³ (ãã« ã¢ãŒã) ãæå®ãããšããããŒãžã ãã¬ãŒã ãšããã®ãããŒãžã ãã¬ãŒã ã®ã¢ã»ã³ããªåããã³é¢æ°ãªãã»ãããæ··åšãããããšã§ãã€ãã£ã ãã¬ãŒã ã衚瀺ãããŸãã ãã®ãªãã·ã§ã³ã§ã¯ã dotnet-dump ãšå
±ã«äœ¿çšããå Žåããã€ãã£ã ãã¬ãŒã ã¯è¡šç€ºãããŸããã-r ãªãã·ã§ã³ãæå®ãããšãåã¹ã¿ã㯠ãã¬ãŒã ã®ã¬ãžã¹ã¿ããã³ããããŸãã -all ãªãã·ã§ã³ãæå®ãããšããããŒãžã ã¹ã¬ããã®ã¹ã¿ãã¯ããã¹ãŠãã³ããããŸãã |
| COMState | COM ã¢ããŒãã¡ã³ã ã¢ãã«ã䜿çšå¯èœãªå Žåãåã¹ã¬ãããš Context ãã€ã³ã¿ãŒã«ã€ããŠã¢ãã«ãäžèŠ§è¡šç€ºããŸãã ãã®ã³ãã³ã㯠Windows ã§ã®ã¿ãµããŒããããŸãã |
|
DumpArray [-start<startIndex>] [-length<é·ã>] [-details] [-nofields] <é
åãªããžã§ã¯ãã®ã¢ãã¬ã¹> ãŸã㯠DA [-start<"éå§ã€ã³ããã¯ã¹"] [>"é·ã"<] [-details] [>] "é åãªããžã§ã¯ã ã¢ãã¬ã¹"> |
é
åãªããžã§ã¯ãã®èŠçŽ ã調ã¹ãŸãã -start ãªãã·ã§ã³ã¯ãèŠçŽ ã®è¡šç€ºãå§ããã€ã³ããã¯ã¹äœçœ®ãæå®ããŸãã -length ãªãã·ã§ã³ã¯ã衚瀺ããèŠçŽ ã®æ°ãæå®ããŸãã -details ãªãã·ã§ã³ã¯ãDumpObj 圢åŒããã³ DumpVC 圢åŒã䜿çšããŠèŠçŽ ã®è©³çްã衚瀺ããŸãã -nofields ãªãã·ã§ã³ã¯ãé åã衚瀺ãããªãããã«ããŸãã ãã®ãªãã·ã§ã³ã¯ -detail ãªãã·ã§ã³ãæå®ããå Žåã«ã®ã¿äœ¿çšã§ããŸãã |
| DumpAsync (dumpasync) [-mt<MethodTable ã¢ãã¬ã¹>] [-type<éšååå>] [-waiting] [-roots] | DumpAsync ã䜿çšããŠãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒããèµ°æ»ããéåæã¡ãœããã®ç¶æ
ãããŒãã«è»¢éããããšãã«äœæãããéåæç¶æ
æ©æ¢°ã衚ããªããžã§ã¯ããæ€çŽ¢ããŸãã ãã®ã³ãã³ãã§ã¯ãasync voidãasync Taskãasync Task<T>ãasync ValueTaskãasync ValueTask<T> ãšããŠå®çŸ©ãããŠããéåæç¶æ
æ©æ¢°ãèªèãããŸããåºåã«ã¯ãæ€åºãããåéåæç¶æ æ©æ¢°ãªããžã§ã¯ãã®è©³çްã®ãããã¯ãå«ãŸããŸãã 詳现æ å ±ã¯æ¬¡ã®ãšããã§ãã - éåæç¶æ æ©æ¢°ãªããžã§ã¯ãã®çš®é¡ã®è¡ãããã«ã¯ããã® MethodTable ã¢ãã¬ã¹ããªããžã§ã¯ã ã¢ãã¬ã¹ããµã€ãºãçš®é¡ã®ååãå«ãŸããŸãã - ãªããžã§ã¯ãã«å«ãŸããç¶æ æ©æ¢°ã®çš®é¡åã®è¡ã - ç¶æ æ©æ¢°ã®åãã£ãŒã«ãã®äžèЧã - ãã®ç¶æ æ©æ¢°ãªããžã§ã¯ãããã®ç¶ç¶ã®è¡ (1 ã€ãŸãã¯è€æ°ãç»é²ãããŠããå Žå)ã - ãã®éåæç¶æ æ©æ¢°ãªããžã§ã¯ãã«å¯ŸããŠæ€åºããã GC ã«ãŒãã |
| DumpAssembly<ã¢ã»ã³ã㪠ã¢ãã¬ã¹> | ã¢ã»ã³ããªã«é¢ããæ
å ±ã衚瀺ããŸãã DumpAssembly ã³ãã³ãã¯ãè€æ°ã®ã¢ãžã¥ãŒã«ãååšããå Žåã¯ããããäžèŠ§è¡šç€ºããŸãã DumpDomain ã³ãã³ãã䜿çšãããšã¢ã»ã³ã㪠ã¢ãã¬ã¹ãååŸã§ããŸãã |
| DumpClass<EEClass ã¢ãã¬ã¹> | åã«é¢é£ä»ããããŠãã EEClass æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸããDumpClass ã³ãã³ããå®è¡ãããšéçãã£ãŒã«ãå€ã¯è¡šç€ºãããŸãããééçãã£ãŒã«ãå€ã¯è¡šç€ºãããŸããã DumpMTãDumpObjãName2EEããŸã㯠Token2EE ã³ãã³ãã䜿çšããŠã EEClass æ§é äœã®ã¢ãã¬ã¹ãååŸããŸãã |
| DumpDomain [<ãã¡ã€ã³ ã¢ãã¬ã¹>] | æå®ããAssembly ãªããžã§ã¯ã ã¢ãã¬ã¹å ã«èªã¿èŸŒãŸããåAppDomain ãªããžã§ã¯ããåæããŸãã ãã©ã¡ãŒã¿ãŒãæå®ããªãã§åŒã³åºããšãDumpDomain ã³ãã³ãã¯ããã»ã¹å ã®ãã¹ãŠã® AppDomain ãªããžã§ã¯ããäžèŠ§è¡šç€ºããŸãã .NET (Core) ã«ã¯ 1 ã€ã® AppDomainãããªãããã DumpDomain 㯠1 ã€ã®ãªããžã§ã¯ãã®ã¿ãè¿ããŸãã |
| DumpHeap [-stat] [-strings] [-short] [-min<ãµã€ãº>] [-max<ãµã€ãº>] [-thinlock] [-startAtLowerBound] [-mt<MethodTable ã¢ãã¬ã¹>] [-type<éšååå>] [start [end]] | ã¬ããŒãž ã³ã¬ã¯ããããããŒããšããªããžã§ã¯ãã®åéçµ±èšã«é¢ããæ
å ±ã衚瀺ããŸãã ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒããéå°ã«æçåãããŠããããšã DumpHeap ã³ãã³ããæ€åºãããšãèŠåã衚瀺ãããŸãã -stat ãªãã·ã§ã³ã¯ãçµ±èšçãªåã®æŠèŠã®ã¿ãåºåããããå¶éãå ããŸãã -strings ãªãã·ã§ã³ã¯ãçµ±èšçãªæååå€ã®æŠèŠã®ã¿ãåºåããããå¶éãå ããŸãã -short ãªãã·ã§ã³ã¯ãåãªããžã§ã¯ãã®ã¢ãã¬ã¹ã ãã«åºåãå¶éããŸãã ããã«ãããã³ãã³ãããã®åºåãå¥ã®ãããã¬ãŒ ã³ãã³ãã«ç°¡åã«ãã€ãããŠããªãŒãã¡ãŒã·ã§ã³ãå®çŸã§ããŸãã -min ãªãã·ã§ã³ã¯ããã€ãåäœã§æå®ããã size ãã©ã¡ãŒã¿ãŒæªæºã®ãªããžã§ã¯ããç¡èŠããŸãã-max ãªãã·ã§ã³ã¯ããã€ãåäœã§æå®ããã size ãã©ã¡ãŒã¿ãŒãè¶
ãããªããžã§ã¯ããç¡èŠããŸãã-thinlock ãªãã·ã§ã³ã¯ãThinLocks ãå ±åããŸãã 詳现ã«ã€ããŠã¯ãSyncBlk ã³ãã³ããåç §ããŠãã ããã -startAtLowerBound ãªãã·ã§ã³ã¯ãæå®ããã¢ãã¬ã¹ç¯å²ã®äžéããããŒã ãŠã©ãŒã¯ã匷å¶çã«éå§ããŸãã èšç»ãã§ãŒãºã®éã¯ããªããžã§ã¯ããç§»åãããŠããã®ã§ããŒãããŠã©ãŒã¯ã§ããªãããšããããããŸãã ãã®ãªãã·ã§ã³ãæå®ãããšãDumpHeap ã«æå®ããäžéãã匷å¶çã«ãŠã©ãŒã¯ãéå§ãããããšãã§ããŸãã ãã®ãªãã·ã§ã³ãæ©èœããã«ã¯ãæå¹ãªãªããžã§ã¯ãã®ã¢ãã¬ã¹ãäžéãšããŠæå®ããå¿
èŠããããŸãã ç¡å¹ãªãªããžã§ã¯ãã®ã¢ãã¬ã¹ã®ã¡ã¢ãªã衚瀺ããŠã次ã®ã¡ãœãã ããŒãã«ãæåã§æ€çŽ¢ã§ããŸãã ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãçŸåš memcopy ãåŒã³åºããŠããå Žåã¯ããã©ã¡ãŒã¿ãŒãšããŠæž¡ãããéå§ã¢ãã¬ã¹ã«ãµã€ãºã远å ããããšã§ã次ã®ãªããžã§ã¯ãã®ã¢ãã¬ã¹ãç¹å®ããããšãã§ããŸãã-mt ãªãã·ã§ã³ã¯ãæå®ãã MethodTable æ§é äœã«å¯Ÿå¿ãããªããžã§ã¯ãã®ã¿ãäžèŠ§è¡šç€ºããŸãã-type ãªãã·ã§ã³ã¯ãæå®ããæååã«å¯ŸããŠéšåæååäžèŽããååãæã€ãªããžã§ã¯ãã®ã¿ãäžèŠ§è¡šç€ºããŸãã start ãã©ã¡ãŒã¿ãŒã¯ãæå®ããã¢ãã¬ã¹ããäžèŠ§è¡šç€ºãéå§ããŸããend ãã©ã¡ãŒã¿ãŒã¯ãæå®ããã¢ãã¬ã¹ã§äžèŠ§è¡šç€ºãçµäºããŸãã |
| DumpIL<ãããŒãžã DynamicMethod ãªããžã§ã¯ã> | <DynamicMethodDesc ãã€ã³ã¿ãŒ> | <MethodDesc ãã€ã³ã¿ãŒ> | ãããŒãžã ã¡ãœããã«é¢é£ä»ããããŠããå
±éäžéèšèª (CIL) ã衚瀺ããŸãã åç CIL ã¯ãã¢ã»ã³ããªããèªã¿èŸŒãŸãã CIL ãšã¯ç°ãªãæ¹æ³ã§åºåãããŸãã åç CIL ã¯ãã¡ã¿ããŒã¿ ããŒã¯ã³ã§ã¯ãªãããããŒãžã ãªããžã§ã¯ãé åå ã®ãªããžã§ã¯ããåç §ããŸãã |
| DumpLog [-addr<addressOfStressLog>] [<ãã¡ã€ã«å>] | ã¡ã¢ãªå
ã¹ãã¬ã¹ ãã°ã®å
容ããæå®ãããã¡ã€ã«ã«æžã蟌ã¿ãŸãã ååãæå®ããªããšãçŸåšã®ãã£ã¬ã¯ããªå
ã« StressLog.txt ãšããååã®ãã¡ã€ã«ãäœæãããŸãã ã¡ã¢ãªå ã¹ãã¬ã¹ ãã°ã䜿çšãããšãããã¯ãŸã㯠I/O ã䜿çšããã«ã¹ãã¬ã¹ ãšã©ãŒã蚺æã§ããŸãã ã¹ãã¬ã¹ ãã°ãæå¹ã«ããã«ã¯ãHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework ã®äžã«æ¬¡ã®ã¬ãžã¹ã㪠ããŒãèšå®ããŸãã (DWORD)StressLog = 1 (DWORD)LogFacility = 0xffffffff (DWORD)StressLogSize = 65536 çç¥å¯èœãª -addr ãªãã·ã§ã³ã䜿çšãããšãããã©ã«ã ãã°ä»¥å€ã®ã¹ãã¬ã¹ ãã°ãæå®ã§ããŸãã |
| DumpMD<MethodDesc ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ãã MethodDesc æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸããIP2MD ã³ãã³ãã䜿çšãããšããããŒãžã颿°ãã MethodDesc æ§é äœã®ã¢ãã¬ã¹ãååŸã§ããŸãã |
| DumpMT [-MD] <MethodTable ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ããã¡ãœãã ããŒãã«ã«é¢ããæ
å ±ã衚瀺ããŸãã
-MD ãªãã·ã§ã³ãæå®ãããšããªããžã§ã¯ãã«å®çŸ©ãããŠãããã¹ãŠã®ã¡ãœããã®äžèЧã衚瀺ãããŸãã åãããŒãžã ãªããžã§ã¯ãã«ã¡ãœãã ããŒãã«ã®ãã€ã³ã¿ãŒãå«ãŸããŠããŸãã |
| DumpModule [-mt] <ã¢ãžã¥ãŒã« ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ããã¢ãžã¥ãŒã«ã«é¢ããæ
å ±ã衚瀺ããŸãã
-mt ãªãã·ã§ã³ã¯ãã¢ãžã¥ãŒã«å
ã«å®çŸ©ãããŠããåãšã¢ãžã¥ãŒã«ããåç
§ãããåã衚瀺ããŸãã DumpDomain ã³ãã³ããŸã㯠DumpAssembly ã³ãã³ãã䜿çšãããšãã¢ãžã¥ãŒã«ã®ã¢ãã¬ã¹ãååŸã§ããŸãã |
|
DumpObj [-nofields] <ãªããžã§ã¯ãã®ã¢ãã¬ã¹> ãŸã㯠DO<ãªããžã§ã¯ã ã¢ãã¬ã¹> |
æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ãã«é¢ããæ
å ±ã衚瀺ããŸãã
DumpObj ã³ãã³ããå®è¡ãããšããã£ãŒã«ããEEClass æ§é äœã®æ
å ±ãã¡ãœãã ããŒãã«ãããã³ãªããžã§ã¯ãã®ãµã€ãºã衚瀺ãããŸããDumpStackObjects ã³ãã³ãã䜿çšãããšããªããžã§ã¯ãã®ã¢ãã¬ã¹ãååŸã§ããŸãã åã®ãã£ãŒã«ãã¯ãªããžã§ã¯ãã§ããããããããã«å¯Ÿã㊠CLASS ã³ãã³ããå®è¡ã§ããŸãã-
nofields ãªãã·ã§ã³ã¯ããªããžã§ã¯ãã®ãã£ãŒã«ãã衚瀺ãããªãããã«ããŸããããã¯ãString ã®ãããªãªããžã§ã¯ãã«äŸ¿å©ã§ãã |
| DumpRuntimeTypes | ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãã®äžã«ããã©ã³ã¿ã€ã ã®åãªããžã§ã¯ãã衚瀺ãããããã«é¢é£ä»ããããŠããååãšã¡ãœãã ããŒãã«ãäžèŠ§è¡šç€ºããŸãã |
DumpStack [-EE] [-n] [topstack [bottomstack]] |
ã¹ã¿ã㯠ãã¬ãŒã¹ã衚瀺ããŸãã DumpStack ã³ãã³ãã§ -EE ãªãã·ã§ã³ãæå®ãããšããããŒãžã颿°ã®ã¿ã衚瀺ãããŸãã top ãã©ã¡ãŒã¿ãŒããã³ bottom ãã©ã¡ãŒã¿ãŒã䜿çšããŠãx86 ãã©ãããã©ãŒã äžã§è¡šç€ºããã¹ã¿ã㯠ãã¬ãŒã ãå¶éããŸãã-n ãªãã·ã§ã³ãæå®ãããšããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã®è¡šç€ºãç¡å¹ã«ãªããŸãã ãããã¬ãŒã§ SYMOPT_LOAD_LINES ãªãã·ã§ã³ãæå®ãããŠããå ŽåãSOS ã¯ãã¹ãŠã®ãããŒãžã ãã¬ãŒã ã§ã·ã³ãã«ãæ€çŽ¢ããæåããå Žåã¯ã察å¿ãããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã衚瀺ããŸãã -n (è¡çªå·ãªã) ãã©ã¡ãŒã¿ãŒãæå®ãããšããã®åäœãç¡å¹ã«ã§ããŸãã |
| DumpSig<sigaddr><moduleaddr> | æå®ããã¢ãã¬ã¹ã«ãã Sig æ§é äœã«é¢ããæ
å ±ã衚瀺ããŸãã |
| DumpSigElem<sigaddr><moduleaddr> | 眲åãªããžã§ã¯ãã® 1 ã€ã®èŠçŽ ã衚瀺ããŸãã éåžžãåå¥ã®çœ²åãªããžã§ã¯ãã調ã¹ãã«ã¯ DumpSig ã䜿çšããå¿ èŠããããŸãã ãã ãã眲åã«ãªãããã®ç Žæãããå Žåã¯ãDumpSigElem ã䜿çšããŠçœ²åã®ç¡å¹ãªéšåãèªã¿åãããšãã§ããŸãã |
DumpStackObjects [-verify] [topstack [bottomstack]]ãŸã㯠DSO [-verify] [ topstack [bottomstack]] |
çŸåšã®ã¹ã¿ãã¯ã®ç¯å²å
ã§èŠã€ãã£ããã¹ãŠã®ãããŒãžã ãªããžã§ã¯ãã衚瀺ããŸãã -verify ãªãã·ã§ã³ã¯ããªããžã§ã¯ã ãã£ãŒã«ãã®åééç CLASS ãã£ãŒã«ããæ€èšŒããŸããclrstack ã³ãã³ããšå ±ã« K (windbg) ã bt (lldb) ãªã©ã®ã¹ã¿ã㯠ãã¬ãŒã¹ ã³ãã³ãã§ DumpStackObject ã³ãã³ãã䜿çšããŠãããŒã«ã«å€æ°ãšãã©ã¡ãŒã¿ãŒã®å€ã確èªããŸãã |
| DumpVC<MethodTable ã¢ãã¬ã¹><ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ããå€ã¯ã©ã¹ã®ãã£ãŒã«ãã«é¢ããæ
å ±ã衚瀺ããŸãã DumpVC ã³ãã³ãã§ MethodTable ãã©ã¡ãŒã¿ãŒãæå®ãããšããã£ãŒã«ããæ£ããè§£éã§ããŸãã å€ã¯ã©ã¹ã§ã¯ãæåã®ãã£ãŒã«ããã¡ãœãã ããŒãã«ã«ãªãããšã¯ãããŸããã |
| 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<ãªããžã§ã¯ã ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ãã®ã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã確èªããŸãã |
| FindRoots-gen<N> | -gen any |<ãªããžã§ã¯ã ã¢ãã¬ã¹> | æå®ãããžã§ãã¬ãŒã·ã§ã³ã®æ¬¡ã®ã³ã¬ã¯ã·ã§ã³ã§ãããã¬ãŒããããã°å¯Ÿè±¡ãäžæããããã«ããŸãã äžæãçºçãããšããã®ãªãã·ã§ã³ã®å¹æã¯ããã«ãªã»ãããããŸãã æ¬¡ã®ã³ã¬ã¯ã·ã§ã³ã§äžæããã«ã¯ãã³ãã³ããå床å®è¡ããå¿ èŠããããŸãã ãã®ã³ãã³ãã® <ãªããžã§ã¯ãã®ã¢ãã¬ã¹> 圢åŒã¯ã-gen ãŸã㯠-gen any ã«ããäžæãçºçããåŸã§äœ¿çšããŸãã ãã®æç¹ã§ããããã°å¯Ÿè±¡ã¯ FindRoots ãçŸåšã®ç¡å¹ãªãžã§ãã¬ãŒã·ã§ã³ãããªããžã§ã¯ãã®ã«ãŒããèå¥ããã®ã«é©ããç¶æ ã«ãªã£ãŠããŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
| GCHandles[- perdomain] | ããã»ã¹å
ã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã«é¢ããçµ±èšã衚瀺ããŸãã -perdomain ãªãã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³å¥ã«çµ±èšãåé 眮ããŸãã GCHandles ã³ãã³ãã䜿çšããŠãã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã®ãªãŒã¯ã«ãã£ãŠçºçããã¡ã¢ãª ãªãŒã¯ãæ€çŽ¢ããŸãã ããšãã°ãå³å¯ãªã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ã倧ããªé åãæããŠããããã³ãŒãããã®é åãä¿æãããŸãŸã«ãªã£ãŠãããšãã«ããã®é åãè§£æŸããã«ãã³ãã«ãç Žæ£ãããšãã¡ã¢ãª ãªãŒã¯ãçºçããŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
| GCHandleLeaks | ããã»ã¹ã®åŒ·åãªã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ããã³åºå®ãããã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ãžã®åç §ã«ã€ããŠã¡ã¢ãªå ãæ€çŽ¢ããçµæã衚瀺ããŸãã ãã³ãã«ãèŠã€ãã£ãå ŽåãGCHandleLeaks ã³ãã³ãã¯åç §ã®ã¢ãã¬ã¹ã衚瀺ããŸãã ã¡ã¢ãªå ã«ãã³ãã«ãèŠã€ãããªãå Žåããã®ã³ãã³ãã¯éç¥ã衚瀺ããŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
| GCInfo<MethodDesc ã¢ãã¬ã¹><ã³ãŒã ã¢ãã¬ã¹> | ã¬ãžã¹ã¿ãŸãã¯ã¹ã¿ãã¯ã®å Žæã«ãããŒãžã ãªããžã§ã¯ããæ ŒçŽãããææã瀺ãããŒã¿ã衚瀺ããŸãã ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ãå®è¡ããå Žåã¯ãã³ã¬ã¯ã¿ãŒã¯ãªããžã§ã¯ãã«å¯Ÿããåç §ã®å Žæãææ¡ããŠããå¿ èŠããããŸãããã®çµæãæ°ãããªããžã§ã¯ã ãã€ã³ã¿ãŒã®å€ã䜿çšããŠåç §ãæŽæ°ã§ããŸãã |
| GCRoot [-nostacks] [-all] <ãªããžã§ã¯ã ã¢ãã¬ã¹> | æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ããžã®åç
§ (ãŸãã¯ã«ãŒã) ã«é¢ããæ
å ±ã衚瀺ããŸãã GCRoot ã³ãã³ãã¯ããããŒãžã ããŒãå šäœãšãã¹ã¿ãã¯äžã®ä»ã®ãªããžã§ã¯ãããã³ãã³ãã«å ã«ãããã³ãã«ããæããã³ãã« ããŒãã«ã調ã¹ãŸãã æ¬¡ã«ããªããžã§ã¯ããžã®ãã€ã³ã¿ãŒã«ã€ããŠåã¹ã¿ãã¯ãæ€çŽ¢ããããã«ãã¡ã€ãã©ã€ã¶ãŒ ãã¥ãŒãæ€çŽ¢ããŸãã ãã®ã³ãã³ãã¯ãã¹ã¿ã㯠ã«ãŒããæå¹ããŸãã¯ç Žæ£ãããŠãããã©ããã確èªããŸããã ã¹ã¿ã㯠ã«ãŒãããŸã 䜿çšãããŠãããã©ããã確èªããã«ã¯ãclrstack ããã³ U ã³ãã³ãã䜿çšããŠãããŒã«ã«ãŸãã¯åŒæ°ã®å€ãå±ãããã¬ãŒã ãéã¢ã»ã³ãã«ããŸãã -nostacks ãªãã·ã§ã³ã¯ãã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ããã³å°éå¯èœãªãªããžã§ã¯ãã®ã¿ãæ€çŽ¢ããããã«å¶éãå ããŸãã -all ãªãã·ã§ã³ãæå®ãããšãäžæã®ã«ãŒãã ãã§ãªãããã¹ãŠã®ã«ãŒãã匷å¶çã«è¡šç€ºãããŸãã |
| GCWhere<object ã¢ãã¬ã¹> | æž¡ãããåŒæ°ã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãå ã§ã®äœçœ®ãšãµã€ãºã衚瀺ããŸãã åŒæ°ããããŒãžã ããŒãå ã«ãã£ãŠããæå¹ãªãªããžã§ã¯ã ã¢ãã¬ã¹ã§ã¯ãªãå Žåã¯ããµã€ãºã¯ 0 (ãŒã) ãšè¡šç€ºãããŸãã |
Help (soshelp) [<ã³ãã³ã>] [faq] |
ãã©ã¡ãŒã¿ãŒãæå®ããªãå Žåã¯ã䜿çšã§ãããã¹ãŠã®ã³ãã³ãã衚瀺ããŸãããã©ã¡ãŒã¿ãŒãšããŠã³ãã³ããæå®ããå Žåã¯ããã®ã³ãã³ãã«é¢ãã詳现ãªãã«ãã衚瀺ããŸããfaq ãã©ã¡ãŒã¿ãŒãæå®ãããšãããå¯ãããã質åã«å¯Ÿããåçã衚瀺ãããŸãã |
| HeapStat [-inclUnrooted | -iu] | åããŒãã®ãžã§ãã¬ãŒã·ã§ã³ ãµã€ãºãããã³åããŒãã®åãžã§ãã¬ãŒã·ã§ã³ã§ã®åèšç©ºãé åã衚瀺ããŸãã -inclUnrooted ãªãã·ã§ã³ãæå®ãããšãã¬ããŒãã«ã¯æ¢ã«ã«ãŒãããªãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãããã®ãããŒãžã ãªããžã§ã¯ãã«é¢ããæ å ±ãå«ãŸããŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
| HistClear |
Hist ã³ãã³ãã®ãã¡ããªã«ãã£ãŠäœ¿çšãããŠãããã¹ãŠã®ãªãœãŒã¹ãè§£æŸããŸããéåžžã¯ã HistClear ãæç€ºçã«åŒã³åºãå¿
èŠã¯ãããŸãããå HistInit ãåã®ãªãœãŒã¹ãã¯ãªãŒã³ã¢ããããŸãã |
| HistInit | ãããã°å¯Ÿè±¡ã«ä¿åãããŠããã¹ãã¬ã¹ ãã°ãã SOS æ§é äœãåæåããŸãã |
| HistObj<obj_address> | ãã¹ãŠã®ã¹ãã¬ã¹ ãã°åé 眮ã¬ã³ãŒãã調ã¹ãŠãåŒæ°ãšããŠæž¡ãããã¢ãã¬ã¹ã«ãªã£ãå¯èœæ§ã®ããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³åé 眮ã®ãã§ãŒã³ã衚瀺ããŸãã |
| HistObjFind<obj_address> | æå®ããã¢ãã¬ã¹ã«ãããªããžã§ã¯ããåç §ãããã¹ãŠã®ãã° ãšã³ããªã衚瀺ããŸãã |
| HistRoot<root> | æå®ããã«ãŒãã®äžäœå€æãšåé
眮ã®äž¡æ¹ã«é¢ä¿ããæ
å ±ã衚瀺ããŸãã ã«ãŒãã®å€ã䜿çšãããšãã¬ããŒãž ã³ã¬ã¯ã·ã§ã³å ã§ã®ãªããžã§ã¯ãã®ç§»åã远跡ã§ããŸãã |
| IP2MD (ip2md) <ã³ãŒã ã¢ãã¬ã¹> | JIT ã³ã³ãã€ã«ãããã³ãŒãå
ã®æå®ããã¢ãã¬ã¹ã«ãã MethodDesc æ§é äœã衚瀺ããŸãã |
| ListNearObj (lno) <obj_address> | æå®ããã¢ãã¬ã¹ã®åããã³åŸã«ãããªããžã§ã¯ãã衚瀺ããŸãã ãã®ã³ãã³ãã¯ããããŒãžã ãªããžã§ã¯ãã®éå§æã« (æå¹ã¡ãœãã ããŒãã«ã«åºã¥ããŠ) æå¹ã§ãããšèããããã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ããŒãå ã®ã¢ãã¬ã¹ãããã³åŒæ°ã¢ãã¬ã¹ã®åŸã®ãªããžã§ã¯ããæ€çŽ¢ããŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
| MinidumpMode[0][1] | ãããã³ãã䜿çšãããšãã«å®å
šã§ãªãã³ãã³ããå®è¡ãããã®ã鲿¢ããŸãã ãã®æ©èœãç¡å¹ã«ããã«ã¯ 0 ãæž¡ããæ©èœãæå¹ã«ããã«ã¯ 1 ãæž¡ããŸãã æ¢å®ã§ã¯ãMinidumpMode ã®å€ã¯ 0 ã«èšå®ãããŸãã .dump /m ã³ãã³ããŸã㯠.dump ã³ãã³ãã§äœæããããããã³ãã®å 容㯠CLR åºæã®ããŒã¿ã«å¶éããããã®ãããã³ã㯠SOS ã³ãã³ãã®ãµãã»ããã§ã®ã¿æ£ããå®è¡ã§ããŸãã äžéšã®ã³ãã³ãã¯ã¡ã¢ãªã®å¿ èŠé åãå²ãåœãŠãããŠããªããäžéšåããå²ãåœãŠãããŠããªããããäºæããªããšã©ãŒãçºçããŠå€±æããããšããããŸãã ãã®ãªãã·ã§ã³ã¯ããããã³ãã«å¯ŸããŠå®å šã§ãªãã³ãã³ããå®è¡ãããã®ã鲿¢ããŸãã Windbg ã§ã®ã¿ãµããŒããããŠããŸãã |
|
Name2EE (name2ee) <ã¢ãžã¥ãŒã«å><åãŸãã¯ã¢ãžã¥ãŒã«å> ãŸã㯠Name2EE<ã¢ãžã¥ãŒã«å>!<åãŸãã¯ã¡ãœããå> |
æå®ããã¢ãžã¥ãŒã«å
ã®æå®ããåãŸãã¯ã¡ãœããã® MethodTable æ§é äœããã³ EEClass æ§é äœã衚瀺ããŸããæå®ããã¢ãžã¥ãŒã«ãããã»ã¹ã«èªã¿èŸŒãå¿ èŠããããŸãã é©åãªååãååŸããã«ã¯ãIldasm.exe (IL éã¢ã»ã³ãã©ãŒ) ã䜿çšããŠã¢ãžã¥ãŒã«ãåç §ããŸãã ãŸãã * ã module name ãã©ã¡ãŒã¿ãŒãšããŠæž¡ããšãèªã¿èŸŒãŸããŠãããã¹ãŠã®ãããŒãžã ã¢ãžã¥ãŒã«ãæ€çŽ¢ã§ããŸãã
ã¢ãžã¥ãŒã«åãã©ã¡ãŒã¿ãŒã«ã¯ãmscorlibãimage00400000 ãªã©ããããã¬ãŒã®ã¢ãžã¥ãŒã«ã®ååãæå®ã§ããŸãããã®ã³ãã³ãã¯ãWindows ã®ãããã¬ãŒæ§æ < module>!<type> ããµããŒãããŸãã åã¯ãå®å
šä¿®é£Ÿããå¿
èŠããããŸãã |
| ObjSize [<ãªããžã§ã¯ã ã¢ãã¬ã¹>] | [-aggregate] [-stat] | æå®ãããªããžã§ã¯ãã®ãµã€ãºã衚瀺ããŸãã ãã©ã¡ãŒã¿ãŒãäœãæå®ããªãã§ ObjSize ã³ãã³ãã䜿çšãããšããããŒãžã ã¹ã¬ããã§èŠã€ãã£ããã¹ãŠã®ãªããžã§ã¯ãã®ãµã€ãºã衚瀺ãããããã»ã¹å
ã®ãã¹ãŠã®ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ãã³ãã«ãããã³ãããã®ãã³ãã«ãæããªããžã§ã¯ãã®ãµã€ãºã®åèšã衚瀺ãããŸãã
ObjSize ã³ãã³ãã®çµæã«ã¯ã芪ãªããžã§ã¯ãã«å ãããã¹ãŠã®åãªããžã§ã¯ãã®ãµã€ãºãå«ãŸããŸãã -aggregate ãªãã·ã§ã³ã -stat åŒæ°ãšçµã¿åãããŠäœ¿çšãããšããŸã ã«ãŒããããåã®è©³çްãªãã¥ãŒãååŸã§ããŸãã !dumpheap -stat ãš !objsize -aggregate -stat ã䜿çšããããšã§ãæ¢ã«ã«ãŒãããªããªã£ãŠãããªããžã§ã¯ããå€å¥ããã¡ã¢ãªã«é¢ããããŸããŸãªåé¡ã蚺æã§ããŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
|
PrintException [-nested] [-lines] [<äŸå€ãªããžã§ã¯ã ã¢ãã¬ã¹>] ãŸã㯠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] [-cache<cache-path>] [-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 | ãã¥ãŒå ã®äœæ¥èŠæ±ã®æ°ãå®äºããŒã ã¹ã¬ããã®æ°ãã¿ã€ããŒã®æ°ãå«ãããããŒãžã ã¹ã¬ãã ããŒã«ã«é¢ããæ å ±ã衚瀺ããŸãã |
| Threads (clrthreads) [-live][-special] | ããã»ã¹å
ã®ãã¹ãŠã®ãããŒãžã ã¹ã¬ããã衚瀺ããŸãã Threads ã³ãã³ãã䜿çšãããšããããã¬ãŒã®ççž® IDãCLR ã®ã¹ã¬ãã IDãããã³ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®ã¹ã¬ãã ID ã衚瀺ãããŸãã ããã«ãThreads ã³ãã³ãã§ã¯ãã¹ã¬ãããå®è¡ããŠããã¢ããªã±ãŒã·ã§ã³ ãã¡ã€ã³ã瀺ããã¡ã€ã³åãCOM ã¢ããŒãã¡ã³ã ã¢ãŒãã衚瀺ããã APT åãããã³ã¹ã¬ããå ã®æåŸã«ã¹ããŒãããäŸå€ã衚瀺ãããäŸå€åã衚瀺ãããŸãã -live ãªãã·ã§ã³ã¯ãã©ã€ã ã¹ã¬ããã«é¢é£ä»ããããŠããã¹ã¬ããã衚瀺ããŸãã -special ãªãã·ã§ã³ã¯ãCLR ã§äœæããããã¹ãŠã®ç¹æ®ãªã¹ã¬ããã衚瀺ããŸãã ç¹æ®ãªã¹ã¬ããã«ã¯ãåæå®è¡ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ããã³ãµãŒã㌠ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ã®ã¬ããŒãž ã³ã¬ã¯ã·ã§ã³ ã¹ã¬ããããããã¬ãŒ ãã«ã㌠ã¹ã¬ããããã¡ã€ãã©ã€ã¶ãŒ ã¹ã¬ãããAppDomain ã¢ã³ããŒã ã¹ã¬ãããããã³ã¹ã¬ãã ããŒã« ã¿ã€ã㌠ã¹ã¬ããããããŸãã |
| ThreadState <ç¶æ å€ãã£ãŒã«ã> | ã¹ã¬ããã®ç¶æ
ã衚瀺ããŸãã
value ãã©ã¡ãŒã¿ãŒã¯ãState ã¬ããŒãåºåã® ãã£ãŒã«ãã®å€ã§ãã |
| Token2EE<ã¢ãžã¥ãŒã«å><ããŒã¯ã³> | æå®ããã¢ãžã¥ãŒã«å
ã®æå®ããã¡ã¿ããŒã¿ ããŒã¯ã³ã MethodTable æ§é äœãŸã㯠MethodDesc æ§é äœã«å€æããŸããmodule name ãã©ã¡ãŒã¿ãŒã« * ãæž¡ããšãèªã¿èŸŒãŸããŠãããã¹ãŠã®ãããŒãžã ã¢ãžã¥ãŒã«å
ã«ãããã®ããŒã¯ã³ã®å²ãåœãŠå
ãæ€çŽ¢ã§ããŸãã ãŸãããããã¬ãŒã® mscorlibãimage00400000 ãªã©ã®ã¢ãžã¥ãŒã«åãæž¡ãããšãã§ããŸãã |
| U [-gcinfo] [-ehinfo] [-n] [-o] [-il] [-map] <MethodDesc address> | <ã³ãŒã ã¢ãã¬ã¹> | ã¡ãœããã® MethodDesc æ§é äœãã€ã³ã¿ãŒãŸãã¯ã¡ãœããæ¬äœã®ã³ãŒã ã¢ãã¬ã¹ã§æå®ãããããŒãžã ã¡ãœããã®æ³šéä»ãéã¢ã»ã³ããªã衚瀺ããŸãã
U ã³ãã³ãã䜿çšãããšãéå§ããçµäºãŸã§ã®ãã¹ãŠã®ã¡ãœããããã¡ã¿ããŒã¿ ããŒã¯ã³ãååã«å€æããæ³šéä»ãã§è¡šç€ºãããŸããU ã³ãã³ãã® -gcinfo ãªãã·ã§ã³ãæå®ãããšãã¡ãœããã® GCInfo æ§é äœã衚瀺ãããŸãã-ehinfo ãªãã·ã§ã³ã¯ãã¡ãœããã®äŸå€æ å ±ã衚瀺ããŸãã ãã®æ å ±ã¯ EHInfo ã³ãã³ãã§ãååŸã§ããŸãã -n ãªãã·ã§ã³ãæå®ãããšããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã®è¡šç€ºãç¡å¹ã«ãªããŸãã ãããã¬ãŒã§ SYMOPT_LOAD_LINES ãªãã·ã§ã³ãæå®ãããŠããå ŽåãSOS ã¯ãã¹ãŠã®ãããŒãžã ãã¬ãŒã ã§ã·ã³ãã«ãæ€çŽ¢ããæåããå Žåã¯ã察å¿ãããœãŒã¹ ãã¡ã€ã«åãšè¡çªå·ã衚瀺ããŸãã -n ãªãã·ã§ã³ãæå®ãããšããã®åäœãç¡å¹ã«ã§ããŸãã o ãªãã·ã§ã³ã¯ãçã®ã³ãŒã ã¢ãã¬ã¹ã«å ããŠãã³ãŒãã®ãã€ãã£ã ãªãã»ããã衚瀺ããŸãã il ãªãã·ã§ã³ã¯ãé©åãªãªãã»ããã«ãã€ãã£ã ã³ãŒããæ£åšãã IL ã衚瀺ããŸãã -map ãªãã·ã§ã³ã¯ãIL ãããã€ãã£ã ãªãã»ãããžã®ã³ã³ãã€ã©ã«ãã£ãŠçæããããããã衚瀺ããŸãã -map ã«ã¯ -il ãå¿ èŠã§ããããšã«æ³šæããŠãã ããã |
| VerifyHeap | ã¬ããŒãž ã³ã¬ã¯ã¿ãŒ ããŒãã®ç Žæã®å
åããã§ãã¯ããæ€åºããããã¹ãŠã®ãšã©ãŒã衚瀺ããŸãã ããŒããæ£ããæ§ç¯ãããŠããªãå Žåããã©ãããã©ãŒã ãåŒã³åºããå®è¡ããããšãåå ã§ãããŒããç Žæããå¯èœæ§ããããŸãã |
| VerifyObj<ãªããžã§ã¯ã ã¢ãã¬ã¹> | åŒæ°ãšããŠæž¡ããããªããžã§ã¯ãã§ç Žæã®å åã調ã¹ãŸãã Windows ã§ã®ã¿ãµããŒããããŠããŸãã |
| VMMap | ä»®æ³ã¢ãã¬ã¹ç©ºéãèµ°æ»ããåé åã«é©çšãããŠããä¿è·æ¹æ³ã®çš®é¡ã衚瀺ããŸãã Windbg ã§ã®ã¿ãµããŒããããŠããŸãã |
| VMStat | ä»®æ³ã¢ãã¬ã¹ç©ºéã®æŠèŠãããã®ã¡ã¢ãªã«é©çšãããŠããä¿è·æ¹æ³ã®çš®é¡ (ä¿è·ãªããäºçŽæžã¿ãã³ãããããã©ã€ããŒããå²ãåœãŠæžã¿ãã€ã¡ãŒãž) ã®é ã«è¡šç€ºããŸãã AVERAGE åã« BLK COUNT åãæããçµæã TOTAL åã«è¡šç€ºãããŸãã Windbg ã§ã®ã¿ãµããŒããããŠããŸãã |
Dotnet-Dump
dotnet-dump analyze ã§äœ¿çšã§ãã SOS ã³ãã³ãã®äžèЧã«ã€ããŠã¯ããdotnet-dumpããåç
§ããŠãã ããã
Windows ãããã¬ãŒ
SOS ãããã°æ¡åŒµæ©èœã䜿çšããã«ã¯ã WinDbg/dbg ãããã¬ãŒã«èªã¿èŸŒã¿ Windows ãããã¬ãŒå ã§ã³ãã³ããå®è¡ããŸãã SOS ã³ãã³ãã¯ã©ã€ã ããã»ã¹ãŸãã¯ãã³ãã§äœ¿çšã§ããŸãã
LLDB ãããã¬ãŒ
LLDB ã® SOS ãæ§æããæé ã«ã€ããŠã¯ããdotnet-sosããåç §ããŠãã ããã SOS ã³ãã³ãã¯ã©ã€ã ããã»ã¹ãŸãã¯ãã³ãã§äœ¿çšã§ããŸãã
æ¢å®ã§ã¯ããsos [command_name]ããšå
¥åããããšã§ããã¹ãŠã® SOS ã³ãã³ãã«å°éã§ããŸãã ããããå
±éã®ã³ãã³ãã«ã¯ã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) ã衚瀺ããŸãã |
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 ãŸãã¯ã¹ã¬ãã ã€ã³ããã¯ã¹ãèšå®ããŸãã
setsostid <tid> <index>ã |
sos |
ããŸããŸãª coreclr ãããã° ã³ãã³ããå®è¡ããŸãã æ§æ sos <command-name> <args> ã䜿çšããŸãã 詳现ã«ã€ããŠã¯ããsoshelpããåç
§ããŠãã ããã |
soshelp |
ãã©ã¡ãŒã¿ãŒãæå®ãããŠããªãå Žåã¯äœ¿çšå¯èœãªãã¹ãŠã®ã³ãã³ãã衚瀺ããããæå®ãããã³ãã³ã soshelp <command> ã«é¢ãã詳现ãªãã«ãæ
å ±ã衚瀺ããŸãã |
syncblk |
SyncBlock ã®ææè ã®æ å ±ã衚瀺ããŸãã |
taskstate |
ã¿ã¹ã¯ã®ç¶æ ã人éãå€èªã§ãã圢åŒã§è¡šç€ºããŸãã |
threadpool |
ã©ã³ã¿ã€ã ã¹ã¬ãã ããŒã«ã«é¢ããæ å ±ã衚瀺ããŸãã |
threadpoolqueue |
ãã¥ãŒã«ç»é²ãããã¹ã¬ãã ããŒã«ã®äœæ¥é ç®ã衚瀺ããŸãã |
threadstate |
Pretty ã¯ã¹ã¬ããç¶æ ã®æå³ãåºåããŸãã |
timerinfo |
å®è¡ã¿ã€ããŒã«é¢ããæ å ±ã衚瀺ããŸãã |
token2ee |
æå®ãããããŒã¯ã³ãšã¢ãžã¥ãŒã«ã® MethodTable æ§é äœãš MethodDesc æ§é äœã衚瀺ããŸãã |
traverseheap |
ããŒãæ å ±ããCLR ãããã¡ã€ã©ãŒãè§£éã§ãã圢åŒã§ãã¡ã€ã«ã«æžã蟌ã¿ãŸãã |
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 |
ãããŒãžã ã¹ã¬ããã衚瀺ããŸãã |