一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所以我觉得有必要整理一下,让大家少走弯路。 二:一些基础概念 1. 在哪下载 现在安装windbg越来越
如果您像我一样,您可能会忘记需要查找某些特定信息的类和名称空间。或者你忘了要查找的字段名。例如当我需要从System.Data.SqlClient命名空间查找信息。此脚本从连接检索特定信息。扩展它也很容易,因此可以使用相同的方法从其他名称空间和字段中提取信息。就个人而言,我更喜欢基于DM
.NET程序包括运行时对象均是自描述的,我们可以从PE文件,以及在Windbg调试时可以得到很多的辅助调试信息,关于运行时对象,1.1版本有一些参考资料。.NET 4.0相关的资料几乎没有找到,如果谁有能发站内的信件告诉我,不胜感激。想了很久,还是把自己最近的调查写出来,留作纪念,待以后补充。错误的
上篇博文中给大家分享了使用Windbg分析线程阻塞问题: Windbg程序调试系列3-线程阻塞问题 本篇中我们继续,跟大家分享附加进程实时调试-Live Debugging。 先说一下使用Windbg附加进程实时调试的应用场景和注意事项: 应用场景: 集成测试环境,影响异常后,分析异常和线程上下文的执行堆栈
上篇博客中给大家分享了使用Windbg进行Live Debugging: Windbg程序调试系列4-Live Debugging 本篇中我们继续,跟大家分享常见的应用程序高CPU使用率问题分析。 先说Windows下CPU使用率这个概念: CPU使用率:在任务管理器的刷新周期内CPU忙的时间与整个刷新周期的比值。默认的刷新周期
外面没啥好说的, 里面其实也简单, 设置好 bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS 然后设置好 msconfig 然后设置好串口输出,就完事了。 很简单 主要是bcdedit 这个关闭驱动签名验证的这个命令不好记。
Windbg是.NET高级调试领域中不可或缺的一个工具和利器,也是日常我们分析解决问题的必备。准备近期写2篇精华文章,集中给大家分享一下如果通过Windbg进行.NET高级调试。 今天我们来一篇入门的文章。首先,Windbg是什么? Windows Debugger,简称WinDbg,.NET 最强分析调试利器。它可以用来:
.ttime (Display Thread Times) ttime命令显示线程的创建时间,以及它在内核模式和用户模式下运行的时间。 .ttime 环境 Modes user mode only Targets live, crash dump Platforms x86 only 说明 此命令仅在用户模式下工作。在内核模式下你应该使用!thre
查看内存泄露 5.查看最耗内存的所在 .cls -------------------------------清屏 ~ ----------------------------------查看当前程序的所有线程 ~0s --------------------------------切换到我们需要调试的原托管线程中 !Threads ---------------------------命令可以查看进程内所
User Mode 32bit 0:000> dt nt!_TEB.Stack* ntdll!_TEB +0x000 NtTib : +0x004 StackBase : Ptr Void +0x008 StackLimit : Ptr Void User Mode 64bit 0:000> dt nt!_TEB NtTib.Stack* ntdll!_TEB +0x000 NtTib : +0x008 StackBase : Ptr64 Void +0x010 StackLi
今天我很高兴向您介绍我的第一个WinDbg扩展lld,目前它只包含一个命令:!inject DLL,它允许您将DLL注入正在调试的进程。sdbgext扩展中有一个类似的命令,但它只适用于32位进程。用法非常简单——只要记住以正确的位加载扩展(32位进程的32位版本)。示例会话可能如下所示: 0:000> .load lld 0
WinDbg符号链接参考 直接在Windows环境变量中这么设置 添加 一个新的变量 _NT_SYMBOL_PATH 变量的值 cache*c:\MySymbols;srv*https://msdl.microsoft.com/download/symbols 你有什么问题,去看上面给的超链接。我去哪里翻看的资料,得到的结论。 在此之前,翻看了几十篇博文,楞是
相关资料: https://blog.csdn.net/counsellor/article/details/80816583 0x00 软件名称:Debugging Tools for Windows 0x01 软件版本:6.12 0x02 适用操作系统:windows 7 windows xp 0x03 官方下载地址x64 http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37
加载DLL 的时候断 sxe ld:[dll] 比如: sxe ld:wininet.dll (在wininet.dll 被装载的时候断点) 这里DLL名字是支持通配符的 比如: sxe ld:wini*.dll 也可以在事件过滤器里设置 卸载DLL 的时候断 sxe ud:[dll] 也可以在事件过滤器里设置 直接在DllMain下断 bu wininet!DllMain
每次启动windbg时,我都会运行一些命令,我突然意识到,也许是时候将这些命令放到脚本中,让windbg自动执行它了。首先,创建一个包含要运行的所有命令的文件。对于本例,让我创建一个名为“dbg-prep.wds”的文件 C:\Users\ilhoye\Desktop\WinDbg> type dbg-prep.cmd .symfix .reload .load m
你们都知道并喜欢DML,那些出现在WinDbg输出中的超链接,允许你们在思考崩溃代码的含义时漫无目的地点击。 但是,你知道DML在WinDbg的Windows10版本中甚至更好吗?已添加对游戏更改功能的支持:右键单击!是的,您现在可以右键单击DML输出并打开一个新的选项菜单: 此菜单中包括在新窗口中打
原调试debugwindbg死锁deadlock 前言 项目里的一个升级程序偶尔会死锁,查看dump后发现是死在了ShellExecuteExW里。经验少,不知道为什么,于是在高端调试论坛里发帖求助,链接如下http://advdbg.org/forums/6520/ShowPost.aspx 根据张银奎老师的描述可知,应该是拥有关键段的线程意外结
在 WinDbg 中,源窗口显示已加载到调试器中的源文件。 如何打开源代码窗口 通过菜单File--->Open Source File打开源代码文件,窗口随之打开 通过快捷键Ctrl+O 通过工具栏 设置源路径,调试器实时自动打开 使用源代码窗口 通过上面方式打开的窗口如下: 每个源窗口都显示一个源文件
窗口切换 可以使用以下键盘快捷方式窗口之间进行切换。 项效果 CTRL+TAB 调试信息窗口之间切换。 通过重复使用此密钥,你可以扫描通过的所有窗口,而不考虑是否浮动、 停靠本身,或选项卡式停靠窗口的集合的一部分。 Alt+Tab 目前,在您的桌面上的窗口之间切换。 此外
寄存器是位于在 CPU 的小易失性内存单位。 许多寄存器专用于特定用途,并可用于用户模式应用程序使用的其他寄存器。 基于 x86 和基于 x64 的处理器在有可用的寄存器的不同集合。 如何打开寄存器窗口 通过菜单View--->Registers 通过快捷键Alt+4 通过工具栏 寄存器窗口 通
前言 本文用于记录WinDbg的一些常用命令和使用技巧,WinDbg是一个强大的windows调试器,除了文中记录的内容外,其它内容会在用到时进行更新。另外你可以“F1”或使用“.hh”命令打开debugger.chm以获取完整的调试器文档。 主题界面 https://www.cnblogs.com/SunsetR/p/12026080.html 命
这是一个很常见的问题,我们几乎总是遇到。想象一下这样一种情况,我们从某个地方得到一个内存转储,想看看在那里运行的是什么操作系统,安装了什么SP。。为此,有一个非常简单的命令。 0:000> vertargetWindows 7 Version 7601 (Service Pack 1) MP (8 procs) Free x86 compatibleProduct:
我在C#2.0中使用线程池的多线程应用在产品中每隔几周挂起一次. 我做了一个同步 !syncblk Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner 201 05b9493c 979 1 05bc1040 bcc 45 022f3490 System.Collections.ArrayList 28
每当尝试将特定的clr异常抛出时,我都尝试使用windbg创建转储. 我知道!soe,但是我不希望执行停止,我只希望它创建转储. 这可能吗? 如果无法使用windbg,我也欢迎其他有关如何实现此目标的建议.解决方法:尝试procdump.也许可以使用选项“ -e 1”来捕获第一次机会异常的转储. 编辑: 对于特
.cmdtree 简介 使用形式 .cmdtree cmdfile 参数 cmdfile命令文件,包含多个你需要的命令 使用步骤 1、使用命令创建文本文件CMDTREE.TXT,使用以下示例作为模板。您可以按所需方式修改{}之间的节: windbg ANSI Command Tree 1.0 title {"Common Commands"} body {"Common Command