如何向应用程序代码添加跟踪语句
最常用于跟踪的方法是用于将输出写入侦听器的以下方法:Write、WriteIf、WriteLine、WriteLineIf、Assert 和 Fail。这些方法可分为两类:Write、WriteLine 和 Fail 都无条件地发出输出,而 WriteIf、WriteLineIf 和 Assert 则检验 Boolean 条件并根据条件的值来写入或不写入。WriteIf 和 WriteLineIf 在条件为 true 时发出输出,而 Assert 在条件为 false 时发出输出。
当设计跟踪和调试策略时,应考虑所需的输出形式。填充不相关信息的多个 Write 语句将创建难于阅读的日志。另一方面,如果使用 WriteLine 将相关语句放置在单独的行上,可能会难以区分哪些信息应该在一起。通常,当需要将来自多个信息源的信息组合起来创建单个提示性消息时,应使用多个Write 语句;当需要创建单个完整消息时,应使用 WriteLine 语句。
写入整个行
调用 WriteLine 或 WriteLineIf 方法。
一个回车符将附加在此方法返回的消息末尾,使 Write、WriteIf、WriteLine 或 WriteLineIf 返回的下一则消息将以如下行开始:
VBDim errorFlag As Boolean = False Trace.WriteLine("Error in AppendData procedure.") Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.")
C#bool errorFlag = false; System.Diagnostics.Trace.WriteLine ("Error in AppendData procedure."); System.Diagnostics.Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.");
J#boolean errorFlag = false; System.Diagnostics.Trace.WriteLine("Error in AppendData procedure."); System.Diagnostics.Trace.WriteLineIf(errorFlag, "Error in AppendData procedure.");
写入部分行
调用 Write 或 WriteIf 方法。
由 Write、WriteIf、WriteLine 或 WriteLineIf 生成的下一条消息将会在由 Write 或 WriteIf 语句生成的消息所在的同一行上开始:
VBDim errorFlag As Boolean = False Trace.WriteIf(errorFlag, "Error in AppendData procedure.") Debug.WriteIf(errorFlag, "Transaction abandoned.") Trace.Write("Invalid value for data request")
C#bool errorFlag = false; System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure."); System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned."); Trace.Write("Invalid value for data request");
J#boolean errorFlag = false; System.Diagnostics.Trace.WriteIf(errorFlag, "Error in AppendData procedure."); System.Diagnostics.Debug.WriteIf(errorFlag, "Transaction abandoned.");System.Diagnostics.Trace.Write("Invalid value for data request");
验证特定条件在执行方法之前或之后存在
调用 Assert 方法。
VBDim I As Integer = 4 Trace.Assert(I = 5, "I is not equal to 5.")
C#int I = 4; System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
C#int I = 4; System.Diagnostics.Trace.Assert(I == 5, "I is not equal to 5.");
说明: 您可以将 Assert 用于跟踪和调试。此示例将调用堆栈输出到 Listeners 集合中的任何侦听器。有关更多信息,请参见托管代码中的断言和Debug.Assert。
- 转自:msdn
如何向应用程序代码添加跟踪语句相关推荐
- OpenCV向应用程序添加跟踪栏
OpenCV向应用程序添加跟踪栏 向应用程序添加跟踪栏 目标 代码 解释 向应用程序添加跟踪栏 目标 在本教程中,您将学习如何: 使用cv :: createTrackbar在OpenCV窗口中添加跟 ...
- HOOK大法实现不修改程序代码给程序添加功能
[文章标题]: HOOK大法实现不修改程序代码给程序添加功能 [文章作者]: 0x18c0 [软件名称]: Scylla [使用工具]: OD.Stub_PE.ResHacker [版权声明]: 本文 ...
- python程序中每条语句以分号结尾,在Python程序中,每条语句末尾必须添加分号。...
在Python程序中,每条语句末尾必须添加分号. 更多相关问题 组织沟通就是在组织结构环境下的( )的交流过程,它涉及战略控制以及如何在创造力和约束力之间达到平衡. (2019考前训练1)启运港填写_ ...
- Shell脚本,循环语句用于减少程序代码冗余和重复,for语句,while语句,使用let进行变量自增
Shell脚本,循环语句用于减少程序代码冗余和重复,for语句,while语句 一.for语法: 1. for 变量 in 值列表 do 命令序列 done 例子:输出循环中的所有值 for i in ...
- java中compare语句的用法,compare的用法_java中 compareTo()的程序代码及用法
compare的用法与区别? 一.用法 v. (动词) 1.compare的基本意思是"比较,对照",主要用于比较事物的典型特征及其价值,而不在于比较相同与不同. 2.compar ...
- C语言 程序代码编写规范
前言 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性. 说明 l 本文档主要适用于刚刚开始接 ...
- c语言程序前言,C语言 程序代码编写规范前言
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...
- c语言程序报告的前言,C语言 程序代码编写规范前言
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...
- 用c语言编写程序相似性检测,程序代码相似性检测在论文抄袭判定中的应用
摘要:现行的论文检测系统,只针对文字部分进行判定,无法判断论文中所包含的代码的独创性.理工科学生的毕业论文,通常包含的大量代码.因现行系统对代码默视为原创,而最终影响了对论文整体抄袭比例的判定,使准确 ...
最新文章
- AD rodc扩展报错
- android编程中添加gif,Android应用开发之【Android】使用android-gif-drawable包加载GIF动图...
- Python用拉格朗日法进行数据横向插值
- SQL2008中Merge的用法
- 完善vim bccalc_linux插件
- poj3249Test for Job(记忆化搜索)
- [翻译] 编写高性能 .NET 代码--第二章 GC -- 配置选项
- Spring定时任务并行(异步)处理
- Trick(九)—— ++i 与 i++ 的本质区别
- openlayer中的投影
- 2016vijos 1-1 兔子的字符串(后缀数组 + 二分 + 哈希)
- ETERM航班销售控制指令
- 在网页中插入视频代码大全
- R语言Error in model.frame.default(formula = y ~ ., data = exam.data, drop.unused.levels = TRUE) :
- Begging_Rust(译):丢弃,移动和复制(第二十一章)
- 曾经的付费视频课持续放出,以及【直播预告】
- word操作:如何修改字体(正确、规范、快捷)
- git版本回退(git reset、git revert、git stash)
- 猫眼电影爬虫和数据分析
- Android7.0 Phone应用源码分析(四) phone挂断流程分析
热门文章
- 【英语学习】【WOTD】purview 释义/词源/示例
- 求矩阵全部特征值和特征向量的QR方法
- python里textfield_Django:为什么我的CharField没有得到类vTextField?
- jDom 和dom4j 输出的中文乱码的解决方案
- 进程间通信方式_第四十九期-Linux内核中的进程概述(4)
- salesforce 架构设计_关于Salesforce证书维护重要通知
- ACES学院色彩编码在影片中的应用
- 虚幻4属性系统(反射)翻译
- CE3和UE3在多线程渲染方面的简单对比
- C++20 系列(一)- Hello C++20