当在开发过程中调试应用程序时,跟踪和调试输出都会出现在 Visual Studio 的“输出”窗口中。不过,若要在已部署的应用程序中包含跟踪功能,则必须在启用 TRACE 编译器指令的情况下编译已插入检测点的应用程序。这样就可以将跟踪代码编译成应用程序的发布版本。如果未启用 TRACE 指令,将在编译过程中忽略所有跟踪代码,并且不会将其包含在将部署的可执行代码中。

跟踪方法和调试方法都具有关联的条件属性。例如,如果跟踪的条件属性为 true,所有跟踪语句都将包含在一个程序集(经过编译的 .exe 文件或 .dll)中;如果 Trace 条件属性为 false,则不会包括跟踪语句。

您可以为一个版本打开或关闭 Trace 和/或 Debug 条件属性。这样就会有四种版本:DebugTrace、二者或二者都不是。某些用于生产部署的发布版本可能不包含这两种属性;大多数调试版本会同时包含这两种属性。

您可以通过几种方式来指定应用程序的编译器设置:

  • 属性页

  • 命令行

  • #CONST(对于 Visual Basic)和 #define(对于 C#)

从属性页对话框中更改编译设置

  1. 右击“解决方案资源管理器”中的项目节点。

  2. 从快捷菜单中选择“属性”

    • 在 Visual Basic 中,单击“属性”页左窗格中的“编译”选项卡,再单击“高级编译选项”按钮,以显示“高级编译器设置”对话框。选中希望启用的编译器设置对应的复选框。清除要禁用的设置的复选框。

    • 在 C# 中,单击“属性”页左窗格中的“生成”选项卡,然后选中希望启用的编译器设置对应的复选框。清除要禁用的设置的复选框。

使用命令行编译已插入检测点的代码

  • 在命令行上设置条件编译器开关。编译器将在可执行文件中包括跟踪或调试代码。

    例如,在命令行上输入的以下编译器指令将在经过编译的可执行文件中包含跟踪代码:

    对于 Visual Basic:vbc /r:System.dll /d:TRACE=TRUE /d:DEBUG=FALSE MyApplication.vb

    对于 C#:csc /r:System.dll /d:TRACE /d:DEBUG=FALSE MyApplication.cs

    提示

    若要编译多个应用程序文件,请在文件名之间留一个空格,例如 MyApplication1.vb MyApplication2.vb MyApplication3.vb 或MyApplication1.cs MyApplication2.cs MyApplication3.cs

    以上示例所使用的条件编译指令具有如下含义:

    指令 含义

    vbc

    Visual Basic 编译器

    csc

    C# 编译器

    /r:

    引用外部程序集(EXE 或 DLL)

    /d:

    定义条件编译符号

    注意

    必须用大写字母来拼写 TRACE 或 DEBUG。如需有关条件编译命令的更多信息,请在命令提示处输入 vbc /?(对于 Visual Basic)或 csc /?(对于 C#)。有关更多信息,请参见从命令行生成 (C#) 或调用命令行编译器 (Visual Basic)。

使用 #CONST 或 #define 执行条件编译

  • 在源代码文件的顶部键入对应于编程语言的适当语句。

    语言 语句 结果

    Visual Basic

    #CONST TRACE = true

    启用跟踪

    #CONST TRACE = false

    禁用跟踪

    #CONST DEBUG = true

    启用调试

    #CONST DEBUG = false

    禁用调试

    C#

    #define TRACE

    启用跟踪

    #undef TRACE

    禁用跟踪

    #define DEBUG

    启用调试

    #undef DEBUG

    禁用调试

禁用跟踪或调试

  1. 从源代码中删除编译器指令。

    - 或 -

  2. 注释掉编译器指令。

    注意

    当准备进行编译时,可以从“生成”菜单中选择“生成”,或者使用命令行方法但不键入 d:,以定义条件编译符号。

    转自msdn

使用跟踪和调试进行条件编译相关推荐

  1. linux gdb#039;查找寄存器地址,【Linux跟踪和调试】gdb

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? gdb是一个由GNU开源组织发布的.UNIX/LINUX操作系统下的.基于命令行的.功能强大的程序调试工具.对于一名Li ...

  2. 无人驾驶:制作鸟瞰图,路径规划,路径跟踪,调试摄像头,测速度,测角度

    本文是[马悦宁老师]指导完成的山东大学引航计划公益人工智能科研实训项目. 注:本文所用代码皆已上传至Github上. 无人驾驶 路径规划 路径规划之前 1.制作并生成鸟瞰图(Python): 内参标定 ...

  3. .NET中的跟踪与调试(TraceDebug)

    http://www.cnblogs.com/goody9807/archive/2009/03/06/1404691.html http://msdn.microsoft.com/zh-cn/lib ...

  4. 在C#中进行断点跟踪及调试

    设置断点: F9 / 可能出错的行头双击 调试:  F5 单步执行: F10 第一次累加sum = 60 判断长度 找出错误

  5. oracle bl编译,使用 PL/SQL 条件编译

    预处理器指令 指令由指令控制标记"$"和普通的 PL/SQL 文本组成.条件编译使用三个指令:选择.查询和错误.特殊的触发器字符"$"代表条件编译指令.选择指令 ...

  6. C# webservice服务跟踪调试方法(转)

    1.新建网站,添加服务,并创建服务. 2.打开internet 信息服务管理器,添加网站,映射到创建的服务所在网站的目录. 3.打开服务所在网站的解决方案,进行配置. 1) 设置启动选项 选择启动操作 ...

  7. mdk5实时调参_使用RealView MDK进行SW调试和实时跟踪STM32

    STM32有两个调试端口,即JTAG和SW.Keil 的ULINK2 USB-JATG接口适配器支持这两种调试接口. 本文描述了如何配置和使用SW接口来获取各种调试信息. 一.目标调试阶段的配置 1. ...

  8. VC代码的编写和调试---编写易于调试的VC代码

    转自:http://www.vcgood.com/forum_posts.asp?TID=1692&PN=1 一 程序的设计 要避免错误,首先要从好的设计开始.对于程序的设计,需考虑到程序的两 ...

  9. VC代码的编写和调试

    VC代码的编写和调试(转载) VC代码的编写和调试(转载) //========================================== // [转载声明] // 出自: // 作者:   ...

最新文章

  1. python关键字匹配_关于python:在遇到某个关键字后匹配值的正则表达式
  2. 学Java后未来发展方向和前景怎么样?
  3. Linux IPC实践(13) --System V IPC综合实践
  4. BFC的作用以及原理介绍
  5. 【超直白】三分钟创建一个小程序
  6. python xlwt操作excel
  7. 为什么文本文件以换行符结尾?
  8. 软件测试面试常用Linux命令总结
  9. 迅雷U享版 v3.0.1.96 Lite V4 精简绿色版
  10. 呼叫中心系统源码_RC09(支持二次开发)CC呼叫中心系统 源码
  11. 使用bootloader进行远程固件升级(32MCU)
  12. Mysql5.7 的错误日志中最常见的note级别日志解释
  13. 【滤波器】基于matlab实现语音通信仿真附报告
  14. nuke linux 插件,NUKE插件:通过环境变量设置NUKE GIZMO插件
  15. IMU:姿态解算算法集合
  16. 教你一招:Win10切换输入法与Win7一样(Ctrl + 空格)
  17. 子域名收集 -- Esd
  18. 1000瓶毒药,小白鼠测毒问题
  19. android中设置默认语言、默认时区
  20. Pandas中的appy和applymap

热门文章

  1. [SDOI2007] 单词接龙游戏 dp
  2. Java字符串分割到map_如何在Java中按空格分割字符串并以键值形式存储在map中?...
  3. C++字符串操作总结
  4. 2019日历全年一张_看,日历里居然藏着一座艺术馆!让这本最美日历开启2021年好运...
  5. 项目助理这个工作怎么样_影楼化妆师这个工作怎么样?
  6. java代码调用python_java调用python代码-阿里云开发者社区
  7. iphonex计算机隐藏功能,关于iPhone11系列的一些隐藏功能,非常的实用
  8. STL之partial_sum
  9. 会“聆听”用户,用户反馈设计
  10. 回顾2017系列篇(二):移动端APP设计趋势