zoukankan      html  css  js  c++  java
  • 调试发行版程序 (三)

    因为符号服务器的配置过程比较繁琐,所以写了一个 WORD 文档,请从下面的连接下载该文档:调试符号服务安装说明

    另外需要注意的是:在 64 位 Windows 上的 IIS 是 64位的,所以在复制相关的动态库时一定要注意也复制64位的,否则将不可使用;

    下面来说符号服务器配置完成后,如果在团队中进行协同工作:
      1、程序开发人员需要发布的程序在配置管理工具(如:TFS 或者 StarTeam)中打上待发布的标签
      2、代码管理员启用代码生成工具,产生最终的可执行程序,提交给测试人员
      3、如果测试通过,代码管理员将可执行程序和符号文件同步提交到符号库中
      4、程序测试人员将测试通过的最终程序(含配置文件)提交给发布人员通过网络发布给最终用户
      5、用户处的程序一旦发生异常,发送错误报告到报修处理人员的邮箱
      6、报修处理人员对收到的错误报告进行筛选并转发给相应的开发人员(通过登记 CR/BUG)
      7、开发人员对收到的错误报告进行详细分析并改进程序,然后将 CR/BUG 标记为修复状态

    在上面这个团队的协同工作过程中,报修处理人员(也可能是错误报告处理专职人员)和开发(或代码维护)人员需要配置 WinDebug 的客户端,具体的配置方式在第一篇文章《调试发行版程序 (一)》中已经进行了讲解,现在只需要将符号服务器变更为搭建的企业符号服务器即可:

    本地符号库配置:SRV*D:\WinDebug\Symbols*HTTP://msdl.microsoft.com/download/symbols;
    企业符号库配置:SRV*D:\WinDebug\Symbols*HTTP://ServerName/symbols;

    因为在符号服务器上配置了微软符号服务的代理,所以通过企业内部的符号服务器也可以下载到操作系统的符号文件(当前前提条件是该符号服务器能够访问微软的符号服务器)

    最后为了方便对错误报告进行定位,提供了一个注册表文件,通过该文件可以关联 DMP 文件使用 WinDbg.exe 打开,同时执行错误定义的命令,如下所示:

    VS90DMP.REG
    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 )将直接定位到程序崩溃的地方,如果本机有源代码,那么还会自动定位到崩溃的代码行;

  • 相关阅读:
    Python中所有的关键字
    关于selenium的8种元素定位
    对提示框的操作
    selenium+webservice进行百度登录
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled...报错解决
    Vue中使用echarts
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142解决方法
    插入排序
    冒泡排序优化
    roject 'org.springframework.boot:spring-boot-starter-parent:XXX' not found 解决
  • 原文地址:https://www.cnblogs.com/WonKerr/p/WinDebug03.html
Copyright © 2011-2022 走看看