摘要:
当我们开发的Windows程序崩溃时,我们常会将Catch到的Dump文件进行分析。以往当我们拿到一个Dump时,通常是这样做的:1.确定Dump发生时的版本号;2.找到备份的对应版本的PDB文件;3.必要时再找对应版本的源文件;然而,当发布出去的版本较多时,上述过程是很麻烦的;建议一个符号服务器可以为我们省去上述麻烦。----以下介绍带源文件索引的符号服务器的创建过程--------:以下是创建符号服务器的过程,使用符号服务器不需要这些工作;以下描述仅适用于源代码服务器为SubVersion的情形,其他源代码服务器的情况,请参考相应资料。1.准备工作安装Windows Debugging T 阅读全文
posted @ 2012-08-11 21:34
小皮球
阅读(458)
评论(0)
推荐(0)
摘要:
关于建设symbol store的建议2006-12-21一、symbol store的需求分析:1、我们现在的调试环境严重依赖开发人员自己使用的开发环境,缺点在于其他人要进行调试要么搭建一个同样的环境,严重地占去大家不必要花费的工作时间,进一步带来的问题是各个版本的源代码流落各处,易出问题,要么就只有交给原开发人员,同样带了严重的交流时间开销,而且不仅原开发人员的工作会被打断,而且需求人还要在这个过程中等待。2、即便是开发人员自己面对不同版本的调试,也是一个令人挠头的事情,即便是现在我们保存了map文件,但是调试的便利与效率,相信也是大家希望进一步提高的。如何改变现有的调试难的问题,并且提高 阅读全文
posted @ 2012-08-11 21:30
小皮球
阅读(290)
评论(0)
推荐(0)
摘要:
好不容易复现的宕机bug,结果不产生dump文件,让俺情何以堪啊!坑爹嘛!大部分情况还好,就是弹出这种“Runtime Error”框的时候,不产生dump文件,解决它!!!VS2005中SetUnhandledExceptionFilter函数应用很多软件通过设置自己的异常捕获函数,捕获未处理的异常,生成报告或者日志(例如生成mini-dump文件),达到Release版本下追踪Bug的目的。但是,到了VS2005(即VC8),Microsoft对CRT(C运行时库)的一些与安全相关的代码做了些改动,典型的,例如增加了对缓冲溢出的检查。新CRT版本在出现错误时强制把异常抛给默认的调试器(如果 阅读全文
posted @ 2012-08-11 21:20
小皮球
阅读(1422)
评论(0)
推荐(0)
摘要:
文/玄魂.PDB文件,全称为“程序数据库”文件。我们使用它(更确切的说是看到它被应用)大多数场景是调试应用程序。目前我们对.PDB文件的普遍认知是它存储了被编译文件的调试信息,作为符号文件存在。那么,它具体包含哪些内容呢?在调试过程中是怎样发挥作用的呢?我们有没有办法去操作这个文件呢?1. PDB文件内容.PDB文件的内部格式,微软并没有公开,现在仍然是一个秘密,但是它提供了相关的API用于调试器来从中获取信息。一个非托管C++程序的PDB文件包含如下信息:l Public, private,和static函数地址l 全局变量的名称和地址l 参数和局部变量的名称及它们在栈中的偏移量l 类型定义 阅读全文
posted @ 2012-08-11 21:17
小皮球
阅读(339)
评论(0)
推荐(0)
摘要:
当应用程序被链接以后,代码被逐一地翻译为一个个的地址,优化以后的代码可能初看起来更是面目全非。每当我们使用vs或者windbg等微软的调试工具进行调试的时候,我们可以方便地使用变量名来查看内存、可以使用函数名称来下断点、甚至可以指定某个文件的某一行来下断点。这一切背后是什么在指导调试器工作呢?答案就是符号——pdb或者dbg文件(.NET自己有元数据,符号不需要元数据已有的信息)。 程序运行的时候,计算机只需要逐条执行指令即可。而与源代码对应的关系是完全不需要知道的。这就给调试带来了困难,所以无论什么编译都有自己的一套用于对应代码和可执行程序。各种编译器都有自己保存类似这种对应关系的办法,有. 阅读全文
posted @ 2012-08-11 21:11
小皮球
阅读(432)
评论(0)
推荐(0)

浙公网安备 33010602011771号