zoukankan      html  css  js  c++  java
  • 调试版本和发行版本

         Microsoft将应用程序的调试版本定义与符号调试信息,或与调试库一起建立的程序的一个版本。一个库的版本包括诊断帮助。并执行各种集成检查,以帮助调试一个程序。Microsoft将发行版本定义为程序的一个编译版本,其中不包括在调试模式中建立编译时所包含的调试和诊断特性。例如发行版本不包括ASSERT宏所包含的源代码。


    1.缺省的调试版本建立与发行版本建立设置


         缺省调试和发行版的编译设置
         
    建立版本 缺省编译器设置
    Win32 Debug 这一选项一Microsoft格式,插入完整的符号调试信息,并
    且不做任何优化。在这一阶段使用优化选项将使调试更困难
    Win32 Release 不包括任何符号调试信息。源代码以最快速度优化目标

    2.为调试版本建立修改工程设置


         用户可以在Project Settings对话框(从Project菜单的Settings)的C/C++标签中的Debug Info选项修改工程设置,安全的Debug Biuld选项。
    安全的Debug Build选项 导致Debug Build
    Program Database for Edit and Contiue 产生一个附加输出文件称为程序数据库(.pdb).该文件包含程序的类型信息和符号调试信息。
    Line Number Only 修改.obj文件或可执行文件.exe的翻译。以使其只包含全局和外部符号以及行号信息(不包含符号调试信息)
    C7 Compatible 产生一个.obj文件和一个.exe文件,并带有调试器使用的行号和全部的符号调试信息
    None 不产生调试信息

         修改产生调试信息的格式


         以下配置藐视了配置Link为Microsoft Format(缺省)、COFF Format或者二者皆有:
    1. 从Project菜单中单击Settings,显示Project Settings对话框
    2. 单击Link标签
    3. 从Category下拉列表中选择Debug选项。
    4. 选择Microsoft Format(缺省)、COFF Format或Both Formats。
    5. 单击OK接受选择

         产生一个映射文件


         在调试一个应用程序时,特别是在当需要卸载出特定的内存时,有时映射文件将是非常有用。映射文件实际上是一个文本文件,其中包含了关于正在连接的程序的如下信息:
    • 该文件的模块名称或基名称
    • 该程序头文件的时间戳
    • 程序组列表,每个组以 segment:offset(段:偏移量)形式的起始地址,以及长度,组名和类的构成。
    • 公共符号列表,个地址均以segment:offset形式给出,包括符号的名字、浮动地址及定义符号的.obj文件
    • segment:offset形式的模块入口地址
         为打开映射文件的Debug选项,执行如下步骤:
    1. 从Project菜单中单击Settings。显示Project Settings对话框
    2. 选择Link标签
    3. 从Category中选择Debug标签
    4. 选择Generate mapfile复选框
    5. 为所生成的输出文件在Mapfile Name中选择名字,
    6. ok,接受选择

         重定向调试输入和输出

         
         Microsoft Visual C++允许重定向任何Win32 控制台应用程序的文件输入或者输出位置:
    1. 选择Project--> Settings选项
    2. 单击Debug标签
    3. 从Program Arguments文件框中指定一个或多个I/O重定向命令。
    4. OK,激活选项
         
    命令 动作
    <filename stdin从filename输入
    >filename stdout输出到filename
    >>filename 追加stdout到filename
    2>>filename stderr输出到filename
    2>>filename 追加stderr到filename
    2>&1 发送stderr(2)输出到与stdout(1)相同的位置
    1>&2 发送stdout(1)输出到stderr(2)相同的位置

    3.什么是.pdb文件


         当Debugger打开Use Pragram Database选项时,则在建立程序时将产生一个附加文件,该文件中包含了调试和工程的状态信息,允许Visual Studio执行调试程序版本的增量连接。
         一般来说,VisualC++仅产生一个输出.pdb文件,然而,如果运行一个不是有Microsoft Visual C++创建的makefile,则将发现有两个.pdb文件,第一个文件为VCx0.pdb(x为当前VisualC++的版本),其中包含了所有正对独立的.obj文件的调试信息,第二个文件为projectname.pdb,其中包含了所有针对于Projectname.exe文件的调试信息。
         CVx0.pdb和projectname.pdb文件包着不同类型的信息,VCx0.pdb文件中所有关于程序类型的信息,但不包含任何符号信息,projectname.pdb文件是在连接阶段产生的,该文件包含了关于工程的.exe的文件调试信息,所有调试信息包含函数原型及其他信息,


  • 相关阅读:
    JBoss目录结构说明
    Velocity简介
    如何把文件上传到另外一台服务器
    控制GridView列显示
    CheckBoxList取值及勾选上
    Email发送中不允许使用邮箱名称原因
    关于URL重写的一点心得
    修改数据库所有者
    验证CheckBoxList至少要有一项选中
    SQL中字符串处理(分割及反分割)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3076850.html
Copyright © 2011-2022 走看看