调试发行版程序 (三)
因为符号服务器的配置过程比较繁琐,所以写了一个 WORD 文档,请从下面的连接下载该文档:调试符号服务安装说明
另外需要注意的是:在 64 位 Windows 上的 IIS 是 64位的,所以在复制相关的动态库时一定要注意也复制64位的,否则将不可使用;
下面来说符号服务器配置完成后,如果在团队中进行协同工作:
1、程序开发人员需要发布的程序在配置管理工具(如:TFS 或者 StarTeam)中打上待发布的标签
2、代码管理员启用代码生成工具,产生最终的可执行程序,提交给测试人员
3、如果测试通过,代码管理员将可执行程序和符号文件同步提交到符号库中
4、程序测试人员将测试通过的最终程序(含配置文件)提交给发布人员通过网络发布给最终用户
5、用户处的程序一旦发生异常,发送错误报告到报修处理人员的邮箱
6、报修处理人员对收到的错误报告进行筛选并转发给相应的开发人员(通过登记 CR/BUG)
7、开发人员对收到的错误报告进行详细分析并改进程序,然后将 CR/BUG 标记为修复状态
在上面这个团队的协同工作过程中,报修处理人员(也可能是错误报告处理专职人员)和开发(或代码维护)人员需要配置 WinDebug 的客户端,具体的配置方式在第一篇文章《调试发行版程序 (一)》中已经进行了讲解,现在只需要将符号服务器变更为搭建的企业符号服务器即可:
因为在符号服务器上配置了微软符号服务的代理,所以通过企业内部的符号服务器也可以下载到操作系统的符号文件(当前前提条件是该符号服务器能够访问微软的符号服务器)
最后为了方便对错误报告进行定位,提供了一个注册表文件,通过该文件可以关联 DMP 文件使用 WinDbg.exe 打开,同时执行错误定义的命令,如下所示:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.dmp]
@="VisualStudio.dmp.9.0"
[HKEY_CLASSES_ROOT\.mdmp]
@="VisualStudio.mdmp.9.0"
[HKEY_CLASSES_ROOT\VisualStudio.dmp.9.0]
@="Crash Dump File"
[HKEY_CLASSES_ROOT\VisualStudio.mdmp.9.0]
@="Crash Dump File"
[HKEY_CLASSES_ROOT\VisualStudio.dmp.9.0\shell]
[HKEY_CLASSES_ROOT\VisualStudio.mdmp.9.0\shell]
[HKEY_CLASSES_ROOT\VisualStudio.dmp.9.0\shell\Open]
[HKEY_CLASSES_ROOT\VisualStudio.mdmp.9.0\shell\Open]
[HKEY_CLASSES_ROOT\VisualStudio.dmp.9.0\shell\Open\command]
@="\"D:\\WinDebug\\Program\\WinDbg.exe\" -z \"%1\" -c\".ecxr\""
[HKEY_CLASSES_ROOT\VisualStudio.mdmp.9.0\shell\Open\command]
@="\"D:\\WinDebug\\Program\\WinDbg.exe\" -z \"%1\" -c\".ecxr\""
将该注册表文件导入注册表(和VS2008兼容),然后直接打开错误报告中的错误状态导出文件( Crash.DMP )将直接定位到程序崩溃的地方,如果本机有源代码,那么还会自动定位到崩溃的代码行;