在 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 的安装目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。
(ProjectDir)。 (ProjectPath)。- $(InputName)
- $(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。
- $(References) 以分号分隔的引用列表被添加到项目中。
- $(ConfigurationName) 当前项目配置的名称(例如“Debug”)。
- $(PlatformName) 当前项目平台的名称(例如“Win32”)。
- $(Inherit) 指定在由项目生成系统所撰写的命令行中,继承的属性出现的顺序。默认情况下,继承的属性出现在当前属性的末尾。
(Inherit)。 (NoInherit) 的功能超集。- $(ParentName) 包含此项目项的项的名称。该名称将是父文件夹名称或项目名称。
(ProjectName)。 (ProjectFileName)。 (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 的目录。
(FrameworkDir) 相结合,就是 Visual Studio 使用的 .NET Framework 版本的完整路径。- $(FrameworkSDKDir) 安装 .NET Framework SDK 的目录。.NET Framework SDK 可作为 Visual Studio .NET 的一部分安装,也可单独安装。
- $(WebDeployPath) 从 Web 部署根到项目输出所属于的位置的相对路径。返回与 RelativePath 相同的值。
- $(WebDeployRoot) 指向 位置的绝对路径。例如,c:\inetpub\wwwroot。
- $(SafeParentName) 有效名称格式的直接父级的名称。例如,窗体是 .resx 文件的父级。
- $(SafeInputName) 作为有效类名的文件的名称,但不包括文件扩展名。
- $(SafeRootNamespace) 项目向导将在其中添加代码的命名空间名称。此命名空间名称将只包含在有效的 C++ 标识符中允许的字符。
- $(FxCopDir) fxcop.cmd 文件的路径。fxcop.cmd 文件不和所有的 Visual C++ 版本一起安装。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2017-11-16 创建线程消息循环服务于动态连接库
2017-11-16 关于Win32串口