首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WinDbg和ADPlus 7.0帮助捕获AV

使用WinDbg和ADPlus 7.0帮助捕获AV
EN

Stack Overflow用户
提问于 2010-06-07 20:10:37
回答 2查看 1.8K关注 0票数 4

我想在SQL Server Compact Edition中捕获内存访问违规,就像http://debuggingblog.com/wp/2009/02/18/memory-access-violation-in-sql-server-compact-editionce/中描述的那样,建议的配置是:

代码语言:javascript
复制
<ADPlus>
   <Settings>
     <RunMode>CRASH</RunMode>
     <Option>Quiet</Option>
     <ProcessName>MyApp.exe</ProcessName>
   </Settings>
   <Exceptions>
     <Option>NoDumpOnFirstChance</Option>
     <Config>
       <Code>clr;av</Code><!–to get the full dump on clr access violation–>
       <Actions1>FullDump</Actions1>
       <ReturnAction1>gn</ReturnAction1>
     </Config>
   </Exceptions>
</ADPlus>

我下载了最新的调试工具,观察了Microsoft将adplus工具重写为托管代码并更改了配置文件的语法。我像这样重写配置文件:

代码语言:javascript
复制
 <ADPlus  Version="2">
 <Settings>
  <RunMode>Crash</RunMode>
  <Option>Quiet</Option>
  <Option>NoDumpOnFirst</Option>
  <Sympath>c:\symbols\</Sympath>
  <OutputDir>c:\work\output\</OutputDir>
  <ProcessName>c:\work\app\output\MyApp.exe</ProcessName>
 </Settings> 

 <Exceptions><!--to get the full dump on clr access violation-->
  <Exception Code="clr;av">   
   <Actions1>FullDump</Actions1>
   <ReturnAction1>gn</ReturnAction1>
  </Exception>  
 </Exceptions>
</ADPlus>

我得到了错误“找不到异常代码: clr;av”。如果我理解正确的话,它没有加载sos扩展,但是我找不到正确的部分和语法来加载它。

adplus_old.vbs -由于某些原因,未在Windows7上启动进程。WinDBG 6.12.0002.633 X86 ADPlus Engine版本: 7.01.002 02/27/2009

也许有人有一个用最新的adplus.exe调试.NET应用的配置的工作示例?

EN

回答 2

Stack Overflow用户

发布于 2010-06-07 20:20:41

这将为您加载SOS.dll (如果您使用的是框架v1,则为<cmd>.load clr10\sos.dll</cmd>):

代码语言:javascript
复制
 <ADPlus  Version="2"> 
 <precommands>
    <cmd>.loadby sos mscorwks</cmd>
 </precommands>

 <Settings> 
  <RunMode>Crash</RunMode> 
  <Option>Quiet</Option> 
  <Option>NoDumpOnFirst</Option> 
  <Sympath>c:\symbols\</Sympath> 
  <OutputDir>c:\work\output\</OutputDir> 
  <ProcessName>c:\work\app\output\MyApp.exe</ProcessName> 
 </Settings>  

 <Exceptions><!--to get the full dump on clr access violation--> 
  <Exception Code="clr;av">    
   <Actions1>FullDump</Actions1> 
   <ReturnAction1>gn</ReturnAction1> 
  </Exception>   
 </Exceptions> 
</ADPlus> 
票数 1
EN

Stack Overflow用户

发布于 2010-06-07 20:20:44

根据ADPlus的this文档:异常代码应该是错误代码的十六进制值。例如,如果您想要捕获AV -您需要0xC0000005

下面是为CLR捕获错误转储的link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2989292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档