2019年12月14日

用!htrace调试句柄泄漏的一般步骤

摘要: Windbg调试器的!htrace扩展对于调试泄漏处理非常方便。该过程基本上可归结为以下简单步骤: 启用跟踪 拍张快照 情景分析 显示差异 在第四步!htrace将在最后一个快照之后显示所有额外打开的句柄,以及调用堆栈(如果可用)。这大大有助于调试哪些句柄是泄漏的,以及由谁来处理。与其他任何资源泄漏 阅读全文

posted @ 2019-12-14 15:56 活着的虫子 阅读(443) 评论(0) 推荐(0) 编辑

利用异常实现反调试

摘要: 0×01 介绍 一些文章已经介绍过通过检测异常来对抗调试器的技术。这个思想很简单:根据设计本意,调试器会处理特定的异常。如果一个异常包裹在try块中,只有当没有附加调试器的时候,异常处理程序才会执行。因此,可以得出结论,只要异常块没有执行,那么程序就正在被一个调试器调试。 0×02 一个字节的Int 阅读全文

posted @ 2019-12-14 15:07 活着的虫子 阅读(1215) 评论(0) 推荐(0) 编辑

VS中的Modules窗口

摘要: 当我在别人的机器上调试问题时,我做的第一件事就是查看modules窗口。按版本排序并看到一个不属于的dll可以帮助立即诊断配置问题,并节省许多调试痛苦。 下面介绍下各列的意思: Name:模块名称。 Path:PE在文件系统上的位置。当您希望找到正确的PE以开始使用命令行工具进行查询时,这非常有用。 阅读全文

posted @ 2019-12-14 14:32 活着的虫子 阅读(1103) 评论(0) 推荐(0) 编辑

Visual Studio调试XSLT

摘要: Visual Studio是一个很大的工具。很容易遗漏一些有用的特性。希望XSLT调试器不会错过。在下面,您可以看到调试器正在运行,因为xslt转换正在应用于某些XML。(请原谅我在示例中使用的毫无意义的XSLT。我有很长一段时间没有机会使用XSLT了。) XSLT调试对我来说很有趣,因为它大部分是 阅读全文

posted @ 2019-12-14 14:04 活着的虫子 阅读(598) 评论(0) 推荐(0) 编辑

PDB files out of the debugger

摘要: 我想我不需要强调在调试时拥有有效的PDB文件有多重要。通常,PDB文件是由调试器静默加载的,并且您很高兴在modules窗口中看到解析的所有符号。不幸的是,您还可能遇到调试器找不到匹配符号的情况。其原因可能与断开的互联网连接或更复杂的签名不匹配一样微不足道。在本文中,我将向您展示如何在调试之前检查符 阅读全文

posted @ 2019-12-14 11:28 活着的虫子 阅读(867) 评论(0) 推荐(0) 编辑

Visual Studio源服务器缓存

摘要: 您是否想过Visual Studio 2008/2010在哪里存储从源服务器下载的源文件?默认情况下,它们会放在Local Settings\Applications Data\SourceServer下的主目录中。如果您使用两个不同的调试器,或者有多个用户使用您的计算机,则可能需要更改此位置。很遗 阅读全文

posted @ 2019-12-14 11:07 活着的虫子 阅读(424) 评论(0) 推荐(0) 编辑

有关OutputDebugString的一点儿事实

摘要: 我最近花了一些时间分析OutputDebugString方法。在我的另一个实验中,我需要一个仅依赖于本机API的OutputDebugString版本。在实现它的过程中,我发现了一些关于OutputDebugString的有趣的事实,也许您也会感兴趣。 OutputDebugString的工作原理 阅读全文

posted @ 2019-12-14 10:54 活着的虫子 阅读(2047) 评论(0) 推荐(0) 编辑

关于Visual Studio源代码文件的行尾

摘要: 我们都知道,UNIX只使用换行符(linefeed)来结束每一行,而DOS传统上使用CR+LF来结束每一行,Visual Studio应该完全在DOS世界中,但不管出于什么原因,当我们从代码服务器上获取代码后,我有时收到以下消息: 如果文件是从某个外部项目导入的,这是可以理解的,但是这个文件是由Vi 阅读全文

posted @ 2019-12-14 10:28 活着的虫子 阅读(777) 评论(1) 推荐(0) 编辑

导航