- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用SOS-在VisualStudio中启用非托管代码调试来支持本机代码调试.
?? SOS(Son of Strike)扩展调试器可以用来显示CLR数据结构的内容。SOS是作为.net framework的一部分安装的(SOS.dll),位于%windir%\Microsoft.NET\Framework\v*.*.****(版 本号)\目录下。在使用SOS(加载SOS.dll)进行调试的步骤:Step1 在Visual Studio中设置项目属性,以启动托管调试:Visual Studio打开要调试的项目,菜单-项目(Project)-Project属性-调试-启用非托管代码调试,如下图所示:
Step2 在代码中设置断点-F5启动调试,运行到断点处;
Step3 设置Symbol目录:??? 如果不设置Symbol目录,运行下面的命令时会提示“PDB symbol for mscorwks.dll not loaded”,这里我们只需要再设置下Symbol目录就行了:菜单-工具-选项-调试-符号,设置如下:
Step4 菜单-调试(Debug)-窗口(Windows)-即时(Immediate),在打开的“即时窗口”中输入“!load sos.dll”来加载SOS.dll,如果加载成功,则会提示“已加载扩展%windir%\Microsoft.NET\Framework \v*.*.****(版本号)\sos.dll”;
Step5 在“即时窗口”中输入“!help”可以获得调试命令列表(如下),输入!help command 可以获得该命令的详细信息.
!help-------------------------------------------------------------------------------SOS?is?a?debugger?extension?DLL?designed?to?aid?in?the?debugging?of?managedprograms.?Functions?are?listed?by?category,?then?roughly?in?order?ofimportance.?Shortcut?names?for?popular?functions?are?listed?in?parenthesis.Type?!help?functionname?for?detailed?info?on?that?function.?Object?Inspection??????????????????Examining?code?and?stacks-----------------------------??????-----------------------------DumpObj?(do)???????????????????????ThreadsDumpArray?(da)?????????????????????CLRStackDumpStackObjects?(dso)?????????????IP2MDDumpHeap???????????????????????????UDumpVC?????????????????????????????DumpStackGCRoot?????????????????????????????EEStackObjSize????????????????????????????GCInfoFinalizeQueue??????????????????????EHInfoPrintException?(pe)????????????????COMStateTraverseHeap???????????????????????BPMD?Examining?CLR?data?structures??????Diagnostic?Utilities-----------------------------??????-----------------------------DumpDomain?????????????????????????VerifyHeapEEHeap?????????????????????????????DumpLogName2EE????????????????????????????FindAppDomainSyncBlk????????????????????????????SaveModuleDumpMT?????????????????????????????GCHandlesDumpClass??????????????????????????GCHandleLeaksDumpMD?????????????????
文档评论(0)