windbg相关内容

如何证明.NET CLR JIT每次运行只编译每个方法一次?

一个老问题询问C#是否每次都是JIT编译的,著名的Jon Skeet的回答是:“不,每个应用程序只编译一次”,只要我们谈论的不是NGENed的桌面应用程序即可。 我想知道2009年的信息是否仍然正确,我想通过实验和调试来解决这一问题,可能是通过在JITter上放置一个断点并使用WinDbg命令来检查对象和方法。 到目前为止我的研究 我知道.NET内存布局考虑了标头(位于地址A- ..
发布时间:2020-10-03 01:39:46 C#/.NET

可以使WinDBG在符号存储中找到mscordacwks.dll吗?

问题 有很多手动方法可以使WinDBG在没有符号存储的情况下找到mscordacwks.dll(将文件放在路径中的某个位置,然后将其放在与windbg.exe相同的文件夹,将其放在我的Framework\v文件夹中,使用 .cordll -lp c:\dacFolder 等在WinDBG中指定路径,)但他们都只针对 me 进行了修复。我需要为使用我的符号存储的每个人更普遍地修复它。 我 ..
发布时间:2020-10-03 01:33:08 其他开发

显示没有方法名称的调用堆栈

在WinDbg中,我可以使用 k 命令获取调用堆栈。对于没有符号的DLL,它会显示错误的方法名称和较大的偏移量,例如 0018f9f0 77641148 syncSourceDll_x86!CreateTimerSyncBridge + 0xc76a 由于我没有符号,因此我必须将此信息提供给DLL的开发人员。我不知道谁会处理该错误以及他有多少调试知识。我想避免开发人员认为 ..
发布时间:2020-09-29 00:53:10 其他开发

什么是“中断指令异常”?在WinDbg中?

我正在调试一些随机的崩溃错误,但实际上很难深入研究。因为当我打开故障转储时,只会发现一个错误: 0:000> .exr -1 异常地址:00000000 异常代码:80000003(中断指令异常) 异常标志:00000000 NumberParameters:0 实际上我没有在代码中设置任何硬代码断点,因此我在Google中搜索此异常,有人说此异常可能是由堆损坏引 ..
发布时间:2020-09-23 20:06:26 其他开发

当到达地址(ba)断点的中断点时检查windbg中的数据

我想创建一个断点,以便它将创建另一个一次性断点,该断点将在写入该内存时“ dd”该内存地址。 所以当遇到断点时,我想运行一个命令,例如: ba w4 @ ESP + 4 / 1''dd [此断点的内存地址]” 由于此断点是由另一个断点创建的断点(可能会多次调用),我无法指定断点号。否则,我可以使用类似'$ bp3'的伪寄存器来获取断点#3的内存地址 有人会 ..
发布时间:2020-09-23 20:06:20 其他开发

如何调试在启动时启动的进程?

我试图在Windows服务中设置一个在启动时启动的断点.由于不幸的错误,该服务迫使计算机进入重新启动循环:这意味着我无法进入可以部署修补程序的稳定状态,而且显然我无法尝试调试该服务在更方便的时间. 我可以在内核模式下使用windbg.我非常想在服务命中wmain功能时中断,但是我遇到了问题. 到目前为止,我发现可以使用以下命令在加载图像时停止: !gflag +ksl sxe l ..
发布时间:2020-09-22 19:03:07 其他开发

要加载哪个版本的sos和clr/mscorwks.dll?

我在64位计算机上托管了一个32位应用程序(面向.NET 3.5).我想分析此32位应用程序的内存转储.我使用32位adplus和cdb捕获了内存转储.我正在将内存转储加载到32位windbg中.当我将.net 2.0 sos.dll和.net 2.0 mscorwks.dll加载到windbg并执行!clrstack时,出现以下错误:“未能找到运行时DLL(mscorwks.dll),0x800 ..
发布时间:2020-09-08 18:54:35 其他开发

WINDBG,如何查看数组的内容?

我正在使用WINDBG分析一个内存使用率过高的程序的转储文件. 涉及的对象之一是持有一个对象数组,引用许多我想查看的对象,以试图找出分配它们的原因. 这是我尝试过的: 首先,我的ServiceContainer对象集合: 0:000> !do 05633014 Name: System.Collections.Generic.List`1[[LVK.IoC.Service ..
发布时间:2020-08-10 21:23:40 其他开发

已安装VS 2015时如何安装WinDbg?

我正尝试从此页面安装WinDbg ,在 Windows 10调试工具(WinDbg)部分下.但是,当我下载可执行文件并运行它时,它告诉我 必须先卸载Windows软件开发工具包-Windows 10.0.10586.15,然后才能安装该工具包的最新版本. 我猜想这可能与我已经安装了VS 2015(和Windows 10 SDK)这一事实有关.但是,当我转到“开发人员命令提示符"并输入 ..

如何设置Windows符号服务器

我在网络上有一个备用服务器,希望托管我们所有的构建符号.我已经知道如何在本地开发系统上设置符号缓存,并将调试器(例如Windbg)指向“符号文件路径"中的该路径.我以为我可以对网络上另一个具有自己的符号缓存(例如\\ host \ symbols)的系统执行相同的操作. 我在目录中设置了服务器并启用了文件共享,因此可以通过Windows资源管理器远程访问它.但是,当我尝试在WinDbg中指向 ..
发布时间:2020-07-26 21:05:21 C/C++开发

为什么要使用WinDbg和Visual Studio(VS)调试器?

相对于Visual Studio调试器,使用 WinDbg 的主要原因是什么? 它通常用作Visual Studio调试器的完整替代品,还是在需要时用于更多替代品. 解决方案 如果您想知道为什么应该在Visual Studio上使用windbg,那么您需要阅读您实际上不需要运行安装,只需将文件复制过来就可以了.它还会安装adsplus.vb,因此您可以对正在运行的进程进行小型转储.设 ..
发布时间:2020-07-26 20:12:17 其他开发

WinDbg,显示已加载模块的Symbol Server路径(即使未加载符号)?

是否可以从WinDbg中使用DbgEng API来显示符号服务器路径(即我知道 lml 对已加载符号的模块执行此操作.我想知道未加载的符号的这些路径,以便诊断问题.有人知道不必使用DbgEng API就能做到吗? 编辑: 我也意识到您可以使用 !sym noisy 获取有关符号加载的错误消息.虽然这确实有帮助输出,但它与我想要的其他输出交错在一起,并且不像'lml' ..
发布时间:2020-07-25 23:08:11 其他开发

如何更改年龄不匹配的PDB以正确匹配?

我们的夜间构建过程被破坏了很长时间,以至于它生成的PDB文件与相应的图像文件相比,存在几小时的时间差异.此后,我已经解决了这个问题. 但是,我想开始使用符号服务器,但是由于必须使用这些年龄不匹配的pdb文件而无法使用.我通过在windbg中使用.symopt + 0x40方法来解决此问题.这意味着我必须手动整理我的所有pdb文件,并且经过多年的发布,这加起来了. 我正在寻找一种方法来修 ..
发布时间:2020-07-25 23:07:01 其他开发

C#应用程序的行为类似于WINDBG的“进入"特征

我做了很多“学术性"安全项目,这些项目主要针对Linux平台,但是最近我对Windows产生了一些兴趣.因此,我要做的是制作一些小工具,例如一个应用程序,以使其他应用程序崩溃,等等,只是为了激发行为.因此,我不得不大量使用WINDBG来逐步执行过程,这非常有用,比GDB(linux)凉爽得多. 因此,我现在要制作的工具基本上就像WINDBG中的步进功能一样.我所能做的是作为System.Di ..
发布时间:2020-07-25 20:30:46 C#/.NET

为Windbg获取正确的.net本机符号

我正在进行一些故障转储调试,在其中查找从生产服务器获取的转储.我在其上运行WinDbg的计算机必须安装稍有不同的.NET运行时版本-加载.NET系统程序集的本机映像时出现错误(因此无法加载例如System.Data.Linq). 确保调试机器可以访问所有正确符号的最佳方法是什么? 修改 为托马斯·韦勒增加了lmv的输出 000007fb`68660000 000007fb`689 ..
发布时间:2020-07-24 23:17:20 C#/.NET

如何从DLL的堆标记中受益?

我如何使用GFlags设置并从中受益通过DLL启用堆标记? 我知道如何激活进程的设置,但是在WinDbg中!heap -t的输出中找不到有用的信息.我期待这样的输出: 0:000> !heap -t Index Address Allocated by 1: 005c0000 MyDll.dll 2: 006b0000 AnotherDll.dll ..
发布时间:2020-07-23 02:04:45 其他开发

GFlags设置可以捕获堆损坏(页面堆除外)吗?

在一个生产站点上,我们的应用程序(*)反复崩溃,但不可重复.分析崩溃转储可以清楚地表明这是堆损坏:崩溃位于不同的位置,但始终在kernel32!HeapFree/ntdll!RtlpLowFragHeapFree内部访问冲突. Win Dbg !analyze -v还报告了堆损坏. 到目前为止,我们一直尝试使用页面堆.问题在于页面堆的内存开销使得应用程序将不再运行(达到32位进程的虚拟内存限 ..
发布时间:2020-07-23 02:03:30 其他开发