在windbg调试.net时遇到的问题
调试.net应用程序时,有时会在windbg中收到错误消息。以下是我最常遇到的几个问题。
Failed to start stack walk---启动堆栈遍历失败
如果你运行sos命令!clrstack在线程上显示.net堆栈,而此线程是.net线程,但它当前未运行任何.net代码,sos将提示失败“Failed to start stack walk: 80004005.”。这并不意味着进程或调试器有任何问题。这仅仅意味着sos不能显示堆栈,因为没有堆栈。如下
Unable to walk the managed stack---无法遍历托管堆栈
如果你在本机线程(即没有对应的System.Threading.thread的线程)上运行!clrstack,sos将显示以下消息。
Following frames may be wrong---以下帧可能错误
如果windbg无法解析某个符号,它将在第一次遇到该符号时出错,告诉您找不到该符号文件,并且在随后的所有时间遇到该符号时,它都将向您发出警告,告诉您它无法正确展开堆栈。当您看到此消息时,这意味着您在警告说明下面看到的任何内容都可能不正确,因此您无法从此处信任堆栈。例如,在本例中,我们可以看到堆栈正在等待输入关键节,DataLayer.dll中的某个方法正在尝试输入关键节,但是,由于我们没有DataLayer.dll的适当符号,因此无法确定它是否是DllUnregisterServer方法。实际上,DllUnregisterServer很可能只是最后一个导出的符号名,否则我们将处于0x43fb的偏移量,这意味着此方法将非常长。
我们不仅不知道这是否是正确的方法名,而且当windbg没有正确的符号时,它甚至可能会丢失堆栈帧,所以您根本不应该信任这个堆栈。
Failed to load data access DLL, 0x80004005---加载数据访问DLL失败
此错误意味着a加载的sos.dll版本不正确,即在本例中,我在1.1转储中加载了2.0版本,或b)找不到正确的mscordacwks.dll版本。如果是选项b,请尝试运行!sym noise 和 run.cordell-ve-u-l.当然,正如错误消息中提到的,确保有一个完整的转储而不是一个小型转储。
在windbg调试.net时遇到的问题的更多相关文章
- 【转】WinDbg调试器:启动程序时自动连接调试器方法
当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft ...
- 调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令
调试SQLSERVER (三)使用Windbg调试SQLSERVER的一些命令 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (二)使用Windbg调试SQLSERVER ...
- 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置
调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置 调试SQLSERVER (一)生成dump文件的方法调试SQLSERVER (三)使用Windbg调试SQLSERVER ...
- 开源项目asmjit——调用自定义方法demo以及windbg调试
asmjit是一个开源项目,使用它可以将代码即时的编译成机器码,也就是所谓的jit技术. 初次接触这个项目,编写了一个demo,学习它的使用方法. 现将编写的demo以及调试jit生成的机器码的过程总 ...
- 使用WinDbg调试SQL Server查询
上一篇文章我给你介绍了WinDbg的入门,还有你如何能附加到SQL Server.今天的文章,我们继续往前一步,我会向你展示使用WinDbg调试SQL Server查询需要的步骤.听起来很有意思?我们 ...
- 使用WinDbg调试SQL Server——入门
这篇文章我想探究下SQL Server里完全不同的领域:如果使用WinDbg(来自针对Windows的调试工具)调试SQL Server.在我们进入枯涩细节之前,我想详细解释下为什么选择这样晦涩的话题 ...
- WinDbg调试流程的学习及对TP反调试的探索
基础知识推荐阅读<软件调试>的第十八章 内核调试引擎 我在里直接总结一下内核调试引擎的几个关键标志位,也是TP进行反调试检测的关键位. KdPitchDebugger : Boolean ...
- WinDbg 调试.net程序
WinDbg支持以下三种类型的命令: · 常规命令,用来调试进程 · 点命令,用来控制调试器 · 扩展命令,可以添加叫WinDbg的自定义命令,一般由扩展dl ...
- 内核,配置WinDbg,调试操作系统(双机调试)
配置WinDbg,调试操作系统(双机调试) PS: 设置双机调试之前,请先安装虚拟机,并且安装好XP系统.这里不做演示.直接设置. 一丶WinDbg的设置 1) 配置WinDbg的环境,在path变量 ...
随机推荐
- gRPC-拦截器简单使用
概述 gRPC作为通用RPC框架,内置了拦截器功能.包括服务器端的拦截器和客户端拦截器,使用上大同小异.主要作用是在rpc调用的前后进行额外处理. 从客户端角度讲,可以在请求发起前,截取到请求参数并修 ...
- delphi 返回所有URL
delphi 返回所有URL USER MSHTMLprocedure TfrmWebEmail.btn5Click(Sender: TObject);var Doc: IHTMLDocument2; ...
- [BZOJ5197] [CERC2017]Gambling Guide
[BZOJ5197] [CERC2017]Gambling Guide 题目链接 https://www.lydsy.com/JudgeOnline/problem.php?id=5197 Solut ...
- LOJ#2409. 「THUPC 2017」小 L 的计算题 / Sum(生成函数)
题意 给定一个长为 \(n\) 的序列 \(\{a_i\}\) 对于 \(k \in [1, n]\) 求 \[ f_k = \sum_{i = 1}^{n} a_i^k \pmod {9982443 ...
- 架构 MVC MVP MVVM 简介 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 初学zipkin搭建链路追踪服务注意事项
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/fsy9595887/article/det ...
- C# 运行流程
转载 https://www.cnblogs.com/qcloud1001/p/9816956.html 从编译原理说起 一句话介绍编译器:编译器是将用某种程式语言写成的源代码(源语言),转换成另一 ...
- AspNetCore MVC页面数据提交验证
2019/05/14,AspNetCore 2.2.0 摘要:AspNetCore MVC使用数据注释配合jquery.validate提交页面进行前端加后端的数据验证 主要用到了jquery.val ...
- Spring对于事务的控制@Transactional注解详解
引用自:https://blog.csdn.net/fanxb92/article/details/81296005 先简单介绍一下Spring事务的传播行为: 所谓事务的传播行为是指,如果在开始当前 ...
- pandas-13 时间序列操作方法pd.date_range()
pandas-13 时间序列操作方法pd.date_range() 在pandas中拥有强大的时间序列操作方法. 使用 pd.date_range() 生成 'pandas.core.indexes. ...