在 Visual Studio 中使用跟踪点将信息记录到“输出”窗口中

断点操作


添加断点右键选择操作

操作示例, 按照提示的格式写入需要打印的消息

结果查看

官方文档

https://docs.microsoft.com/zh-cn/visualstudio/debugger/using-tracepoints?view=vs-2019

有时候在输出窗口不方便查看时可以将输出重定向到文件项目属性/调试/应用程序参数> $(OutDir)/log.log

> 创建一个用于写入的空文件,如果文件名与已存在的文件相同,则会删除已有文件的内容,文件被视为一个新的空文件

>> 追加到一个文件,写操作向文件末尾追加数据,如果文件不存在,则创建文件

VS中的常用宏

  • $(IntDir) 为中间文件指定的相对于项目目录的目录路径。它解析为“中间目录”属性的值。
  • $(OutDir) 输出文件目录的路径,相对于项目目录。这解析为“输出目录”属性的值。
  • $(DevEnvDir) Visual Studio .NET 的安装目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“”。
  • $(InputDir) 输入文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“”。如果该项目是输入,则此宏等效于 $(ProjectDir)。
  • $(InputPath) 输入文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectPath)。
  • $(InputName)
  • $(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。
  • $(References) 以分号分隔的引用列表被添加到项目中。
  • $(ConfigurationName) 当前项目配置的名称(例如“Debug”)。
  • $(PlatformName) 当前项目平台的名称(例如“Win32”)。
  • $(Inherit) 指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。
  • $(NoInherit) 使任何将被继承的属性不被继承。若还要避免同级级别的计算,请使用 (StopEvaluating)。使用(StopEvaluating)。使用(NoInherit)会导致对于同一属性忽略任何出现的 $(Inherit)。
  • $(StopEvaluating) 立即停止计算链中宏的计算。出现在 (StopEvaluating)之后的任何值将不出现在宏的计算值中。如果(StopEvaluating)之后的任何值将不出现在宏的计算值中。如果(StopEvaluating) 在 (Inherit)之前,计算链中当前位置的继承值将不会连接到宏值。(Inherit)之前,计算链中当前位置的继承值将不会连接到宏值。(StopEvaluating)是 $(NoInherit) 的功能超集。
  • $(ParentName) 包含此项目项的项的名称。该名称将是父文件夹名称或项目名称。
  • $(RootNameSpace) 包含应用程序的命名空间(如果有)。输入文件的基本名称。如果该项目是输入,则此宏等效于 $(ProjectName)。
  • $(InputFileName) 输入文件的文件名(定义为基本名称 + 文件扩展名)。如果该项目是输入,则此宏等效于 $(ProjectFileName)。
  • $(InputExt) 输入文件的文件扩展名。它在文件扩展名的前面包括“.”。如果该项目是输入,则此宏等效于 $(ProjectExt)。
  • $(ProjectDir) 项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“”。
  • $(ProjectPath) 项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
  • $(ProjectName) 项目的基本名称。
  • $(ProjectFileName) 项目的文件名(定义为基本名称 + 文件扩展名)。
  • $(ProjectExt) 项目的文件扩展名。它在文件扩展名的前面包括“.”。
  • $(SolutionDir) 解决方案的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“”。
  • $(SolutionPath) 解决方案的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
  • $(SolutionName) 解决方案的基本名称。
  • $(SolutionFileName) 解决方案的文件名(定义为基本名称 + 文件扩展名)。
  • $(SolutionExt) 解决方案的文件扩展名。它在文件扩展名的前面包括“.”。
  • $(TargetDir) 生成的主输出文件的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“”。
  • $(TargetPath) 生成的主输出文件的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。
  • $(TargetName) 生成的主输出文件的基本名称。
  • $(TargetFileName) 生成的主输出文件的文件名(定义为基本名称 + 文件扩展名)。
  • $(TargetExt) 生成的主输出文件的文件扩展名。它在文件扩展名的前面包括“.”。
  • $(VSInstallDir) 安装 Visual Studio .NET 的目录。
  • $(VCInstallDir) 安装 Visual C++ .NET 的目录。
  • $(FrameworkDir) 安装 .NET Framework 的目录。
  • $(FrameworkVersion) Visual Studio 使用的 .NET Framework 版本。与 $(FrameworkDir) 相结合,就是 Visual Studio 使用的 .NET Framework 版本的完整路径。
  • $(FrameworkSDKDir) 安装 .NET Framework SDK 的目录。.NET Framework SDK 可作为 Visual Studio .NET 的一部分安装,也可单独安装。
  • $(WebDeployPath) 从 Web 部署根到项目输出所属于的位置的相对路径。返回与 RelativePath 相同的值。
  • $(WebDeployRoot) 指向 位置的绝对路径。例如,c:inetpubwwwroot。
  • $(SafeParentName) 有效名称格式的直接父级的名称。例如,窗体是 .resx 文件的父级。
  • $(SafeInputName) 作为有效类名的文件的名称,但不包括文件扩展名。
  • $(SafeRootNamespace) 项目向导将在其中添加代码的命名空间名称。此命名空间名称将只包含在有效的 C++ 标识符中允许的字符。
  • $(FxCopDir) fxcop.cmd 文件的路径。fxcop.cmd 文件不和所有的 Visual C++ 版本一起安装。
原文地址:https://www.cnblogs.com/linxmouse/p/13985906.html