zoukankan      html  css  js  c++  java
  • debug,trace,release项目配置区别

    Debug模式是用来调试用的,它生成的执行文件中含有大量调试信息,所以很大;

    Release模式生成的执行文件消除了这些调试信息,可用来作为成品发布

    Debug只在debug状态下会输出,Trace在release下也会输出,在release下Debug的内容会消失

    Debug类提供一组帮助调试代码的方法和属性。Trace类提供一组帮助跟踪代码执行的方法和属性,通俗的说就是为在不打断程序的调试或跟踪下,用来记录程序执行的过程。两个类都是密封类,不能被继承。 Debug类的例子(代码A): TextWriterTraceListener myListener=new TextWriterTraceListener(“F:""DebugLog.txt”); Debug.Listeners.Add(myListener); Debug.WriteLine("这是调试"); Debug.Flush(); Listener.Flush(); Trace类的例子(代码B): TextWriterTraceListener myListener=new TextWriterTraceListener("F:""TraceLog.txt"); Trace.Listeners.Add(Listener); Trace.WriteLine("这是跟踪"); Trace.Flush(); Listener.Flush(); 这两个类有什么区别呢?我们可以通过选择项目的调试方式为“Debug”:用代码A测试,会发现F:"DebugLog.txt中有内容,为“这是调试”,如果用代码B测试,会发现F:"TraceLog.txt中有内容,为“这是跟踪”。我们也可以通过选择项目的调试方式为“Release”:同样用A,B两段代码测试,会发现,F:"DebugLog.txt中是没有内容的,但F:"TraceLog.txt中还是“这是跟踪”的文字。这里说明了一点,Debug类的内容输出,只在Debug模式下生成的exe中起作用,如果改成Release模式下生成的exe,就失去了作用,Trace类则都起作用 用代码A测试,会发现F:"DebugLog.txt中有内容,为“这是调试”,如果用代码B测试,会发现F:"TraceLog.txt中有内容,为“这是跟踪”。现在,我们设置程序为发布方式,如下图所示 同样用A,B两段代码测试,会发现,F:"DebugLog.txt中是没有内容的,但F:"TraceLog.txt中还是“这是跟踪”的文字。这里说明了一点,Debug类的内容输出,只在Debug模式下生成的exe中起作用,如果改成Release模式下生成的exe,就失去了作用,Trace类则都起作用。

    Debug上的大多数诊断函数需要当前项目定义了"DEBUG"预定义变量才能够使用。否则,将不执行任何操作。 Trace检查的预定义变量是"TRACE"。 默认情况下,项目的Debug配置会定义DEBUG和TRACE两个预定义常量。但是Release配置仅仅定义了TRACE常量。这就是为什么你发现Debug.WriteLine在Release模式下没有任何输出。相关细节,你可以查看一下MSDN中关于ConditionalAttribute的描述。 修改这些配置,可以通过Project -> XXXXX Properties -> Build -> Define DEBUG constant 启用和禁用DEBUG或TRACE常量

  • 相关阅读:
    前端websocket连接mqtt不能使用1883端口的问题
    关于aws-Lambda的cron周期性计划任务-表达式的定义方式
    千古奇文-寒窑赋/破窑赋-命运赋-吕蒙正
    关于Linux下aws-cli-2版本的安装
    关于WinSCP如何通过Tunnel隧道进行远程连接-进行文件的传输
    python函数-strip&lstrip&rstrip字符串处理函数
    关于计算机或编程中-时间及各单位换算的的方法记录
    python中print函数的使用小技术-使用分隔符和行尾符
    关于pwd命令小技巧-确认当前工作目录的绝对路径中是否包含软链接目录名
    关于Linux-Redhat-7.x系统不能创建纯数字用户名的原因及临时解决方法
  • 原文地址:https://www.cnblogs.com/suizhikuo/p/4222005.html
Copyright © 2011-2022 走看看