11 2020 档案

Image Header vs. File Timestamps.
摘要:人们可以使用术语“模块时间戳”来表示文件时间戳和Image头时间戳。虽然他们通常非常接近,但他们是不同的,不会是相同的。下面是一个比较/对比: File timestamp Image header timestamp What is it? This is tracked by the file 阅读全文

posted @ 2020-11-30 08:12 活着的虫子 阅读(179) 评论(0) 推荐(0) 编辑

无法在互操作调试上进行编辑并继续进
摘要:有人在论坛上问过关于在混合模式下编辑并继续(EnC)的问题。不能在启用混合模式(interop)调试的情况下使用托管EnC。这是CLR调试服务的一个限制。互操作调试和EnC都是复杂的特性;将它们结合起来将是一个巨大的测试矩阵,而且成本非常高。因此,如果你有C和本地C++解决方案,你的选择是: 如果只 阅读全文

posted @ 2020-11-27 07:58 活着的虫子 阅读(123) 评论(0) 推荐(0) 编辑

!clrstack未显示任何方法名
摘要:!clrstack输出,如下所示: 0:019> !clrstack OS Thread Id: 0x5d0 (19) ESP EIP 0f31f340 7c80bef7 [HelperMethodFrame_1OBJ: 0f31f340] 0f31f398 1449167a 0f31f3c4 14 阅读全文

posted @ 2020-11-26 08:58 活着的虫子 阅读(349) 评论(0) 推荐(0) 编辑

!dumpheap参数和SOS帮助系统的一些一般信息
摘要:什么是 !dumpheap? !dumpheap是来自SOS扩展的命令,用于转储托管堆的内容。您可以获得堆上当前活动的所有托管对象的所有地址和一些附加信息。在WinDbg的最后两个版本中,SOS实际上被PSSCOR取代,它有一个很好的帮助系统。对于大多数命令,您只需键入“!help commandN 阅读全文

posted @ 2020-11-25 07:53 活着的虫子 阅读(1232) 评论(0) 推荐(0) 编辑

WinDbg Script---显示RCW对象引用的COM对象
摘要:在调试.NET应用程序中的转储文件时,有时我们可能会遇到这样的情况:我们希望得到引用RCW对象的System.__ComObject包装器引用的COM对象。你可能会认为抛弃这个系统。也许你能给出答案,但事实并非如此。 如下例子 Name: System.__ComObject MethodTable 阅读全文

posted @ 2020-11-24 08:05 活着的虫子 阅读(294) 评论(0) 推荐(0) 编辑

为什么不能将2个调试器附加到1个进程
摘要:对于纯托管和纯本机调试,只能将1个调试器附加到进程。为什么?本机调试器从托管调试器下面窃取调试事件。这会混淆托管调试器并导致其崩溃。本机调试器无法与托管调试器协调。 执行此操作时遇到的问题:在windows中,操作系统强制一次只能将一个本机调试器附加到调试对象(已调试进程的DebugActivePr 阅读全文

posted @ 2020-11-23 08:51 活着的虫子 阅读(386) 评论(0) 推荐(0) 编辑

什么是互操作调试(Interop-Debugging)?
摘要:Interop-Debugging,互操作调试,又称混合调试。 一般调试背景当调试进程时,它会生成调试事件,调试器可以监听和响应这些事件。这些事件包括CreateProcess、LoadModule、异常、ExitThread、断点等。调度调试事件时,调试对象将停止,直到调试器继续调试事件为止。当调 阅读全文

posted @ 2020-11-20 08:11 活着的虫子 阅读(277) 评论(0) 推荐(0) 编辑

为什么托管调试与本机调试不同?
摘要:人们会问“为什么本机调试器不能调试托管代码?”.原因是CLR提供了许多在典型的本地C++应用程序中所获得的酷服务,例如:运行在虚拟机/JITEN、动态类布局、类型系统、垃圾收集、反射等等。每一个都对调试器提出了特殊的挑战。换句话说,一个完成了所有这些功能的本地应用程序根本无法与传统的本地调试器进行调 阅读全文

posted @ 2020-11-19 16:30 活着的虫子 阅读(261) 评论(0) 推荐(0) 编辑

在WinDBG中管理源代码窗口
摘要:如果您使用了WinDBG源代码调试功能,您可能会发现,每当您在调试中遇到一个与尚未打开的WinDBG文件中的源代码相关的点时,都会打开另一个源代码窗口,这很烦人。这导致了大量的源窗口和一组不断重新排列的窗口。 如果您进入View->Options,并将“打开此多个后重用”选项设置为1,而不是默认值( 阅读全文

posted @ 2020-11-18 08:36 活着的虫子 阅读(393) 评论(0) 推荐(0) 编辑

如何从转储文件确定 /LARGEADDRESSAWARE
摘要:有时在调试时,您希望知道某个特定进程是否使用 /LARGEADDRESSAWARE标志链接,从而能够使用高于2Gb边界的用户模式地址。我的解决方案是:!address -summary将显示进程的有效用户模式地址空间:0:022> !address –summary.. Tot: 7fff0000 阅读全文

posted @ 2020-11-17 08:28 活着的虫子 阅读(519) 评论(0) 推荐(0) 编辑

Dump文件数据存储格式(九)
摘要:十一、系统内存信息流(SystemMemoryInfoStream) SystemMemoryInfoStream包含系统内存管理的一些信息,它紧随在UnloadedModuleListStream流的后面。UnloadedModuleListStream的信息如下: 0x91f8+0n324=0x 阅读全文

posted @ 2020-11-16 08:37 活着的虫子 阅读(398) 评论(0) 推荐(1) 编辑

Windbg命令系列---!cpuid(CPU信息)
摘要:!cpuid扩展命令显示有关系统上处理器的信息。 语法 !cpuid [Processor] 参数 Processor 指定将显示其信息的处理器。如果忽略此参数,则显示所有处理器。 DLL Windows 2000 Ext.dll Windows XP and later Ext.dll 备注 !c 阅读全文

posted @ 2020-11-13 10:18 活着的虫子 阅读(877) 评论(0) 推荐(0) 编辑

Windbg命令系列---!chkimg
摘要:!chkimg扩展命令通过将可执行文件的映像与符号存储库或其他文件存储库上的副本进行比较来检测可执行文件映像中的损坏。 语法 !chkimg [Options][-mmw LogFile LogOptions] [Module] 参数 Options 以下选项的任意组合: -pSearchPath 阅读全文

posted @ 2020-11-12 08:34 活着的虫子 阅读(849) 评论(0) 推荐(0) 编辑

Windbg命令系列---!dh(显示PE头信息)
摘要:!dh扩展指令显示指定模块Image的头信息。相当于一个弱化的dumpbin工具。 语法 !dh [Options]Address !dh -h 参数 Options 以下任一选项: -f 显示文件头。 -s 显示节头。 -a 显示所有头信息. Address 指定Image的十六进制地址。 -h 阅读全文

posted @ 2020-11-11 08:33 活着的虫子 阅读(1234) 评论(0) 推荐(0) 编辑

Windbg命令系列---.exptr(显示异常指针)
摘要:exptr命令显示EXCEPTION_POINTERS结构。 语法 .exptr Address 参数 Address 指定EXCEPTION_POINTERS结构的地址。 环境 Modes User mode, kernel mode Targets Live, crash dump Platfo 阅读全文

posted @ 2020-11-10 07:58 活着的虫子 阅读(620) 评论(0) 推荐(0) 编辑

Dump文件数据存储格式(八)
摘要:十、已卸载模块列表流(UnloadedModuleListStream) UnloadedModuleListStream流包含卸载模块的模块信息。跟随在ModuleListStream的后面。ModuleListStream相关信息如下: 0x29c0+0n26680=0x91f8 而Unload 阅读全文

posted @ 2020-11-09 08:36 活着的虫子 阅读(453) 评论(1) 推荐(0) 编辑

关于bad_typeid异常
摘要:什么是bad_typeid异常? 当typeid运算符应用于多态类型的已取消引用的空指针值时,将引发此类型的异常。 继承关系: class bad_typeid : public exception 例子: // expre_bad_typeid.cpp // compile with: /EHsc 阅读全文

posted @ 2020-11-06 07:53 活着的虫子 阅读(402) 评论(0) 推荐(0) 编辑

关于std::bad_cast异常
摘要:什么是bad_cast异常? 当对引用类型的动态转换未通过运行时检查(例如,因为类型与继承无关)时,将引发此类型的异常。 继承关系 class bad_cast : public exception 例子: // expre_bad_cast_Exception.cpp // compile wit 阅读全文

posted @ 2020-11-05 08:00 活着的虫子 阅读(3553) 评论(0) 推荐(1) 编辑

我的内核调试器无法连接
摘要:在windbg中,可以使用Ctrl+Alt+D查看调试器的内部信息流。在KD中,使用Ctrl+D和ENTER来切换输出。启用这个输出,我可以看到调试器无法从调试端口读取数据,而且它正在超时。错误“SYNCTARGET:Timeout.”清楚地表明调试主机无法与调试目标通信,尤其是在“Send Bre 阅读全文

posted @ 2020-11-04 08:17 活着的虫子 阅读(434) 评论(0) 推荐(0) 编辑

Visual studio从符号服务器搜索中排除模块
摘要:符号服务器访问是对比调试器。能够自动下载与当前系统匹配的所有程序(或者最终用户系统,如果我们想调试崩溃转储)的符号是非常方便的。但是有一个小问题:有些模块的符号在公共符号服务器上没有。但是调试器并不知道,因此每次我们启动调试会话时,调试器都会连接符号服务器并尝试下载模块的符号,但没有成功。因此,调试 阅读全文

posted @ 2020-11-03 08:14 活着的虫子 阅读(181) 评论(0) 推荐(0) 编辑

Dump文件数据存储格式(七)
摘要:九、模块列表流(ModuleListStream) ModuleListStream流包含进程已加载模块信息。它紧跟随在ThreadInfoListStream后面。ThreadInfoListStream信息如下: 0x15f4+0n5068=0x29c0 而ModuleListStream如下 阅读全文

posted @ 2020-11-02 07:59 活着的虫子 阅读(408) 评论(0) 推荐(0) 编辑

导航