社区
界面
帖子详情
简单问题 什么函数能从debug窗口打印数据?
zdk
2003-03-05 04:19:11
什么函数能从debug窗口打印数据?
...全文
101
1
打赏
收藏
简单问题 什么函数能从debug窗口打印数据?
什么函数能从debug窗口打印数据?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wpmsoft
2003-03-05
打赏
举报
回复
回答过两次了,是TRACE。
1、基本概念
跟踪语句(trace statements)可使程序执行,并使程序员可对可变值进行查看。它们提供了一个用于观察的程序,并且独立于一个交互式的调试器,但是最具有特色的是它们常用于对调试器提供的信息进行补充。在VC中,跟踪消息通常输出到输出窗口中的Debug标签,也可以重新输出到一个文件中。跟踪语句的特性如下:
.跟踪语句用于报告代码中重要的运行事件。
.跟踪语句的编译通常是有条件的,并只存在于调试版本中,而在发布版本中不被编译。
.跟踪语句不能包含程序代码或对程序代码有间接的影响作用。
.跟踪语句的目的是向程序员提供信息,而不是向用户。
跟踪语句也是调试语句,它可以执行程序,并且在运行中程序员可以查看变量。跟踪语句对于那些使用交互式调试器很难调试的程序是很有效的。
跟踪语句和断言的区别如下:
.跟踪语句是无条件的,断言是有条件的布尔语句。
.跟踪语句用于显示程序执行和变量值,不直接显示bug,断言用于显示出bug。
.跟踪语句将信息输出到调试窗口或文件中,可被随意地忽略,断言打断程序的执行。
2、MFC中的跟踪语句
在MFC中,你可以使用TRACE和AfxOutputDebugString宏、CObject::Dump虚拟函数和AfxDumpStack函数。TRACE宏由AfxDump实现,AfxDump由AfxOutputDebugString实现。AfxOutputDebugString宏和AfxDumpStack函数可以在所有版本中编译,其他只能在调试版本中编译。
(1)TRACE宏有以下形式:
_TRACE(reportType,format);
_TRACE0(reportType,format,arg1);
_TRACE1(reportType,format,arg1,arg2);
_TRACE2(reportType,format,arg1,arg2,arg3);
_TRACE3(reportType,format,arg1,arg2,arg3,arg4);
在MFC中,推荐使用TRACEn宏,当使用TRACE宏时需要使用_T宏来格式化参数以正确解决Unicode的校正,而TRACEn不需要。
MFC TRACE宏中的一个缺点是AfxTrace函数使用一个512字符固定大小的缓冲区,这使得它在跟踪长字符串时是无用的。
(2)CObject::Dump
CObject类有一个转储(dump)虚拟函数,所有继承CObject的类都可以通过重载这个函数,输出它们的值。
3、Visual C++消息Pragma
消息Pragma实际上是一个编译时的跟踪语句,你可以使用它来警告在预处理过程中发现的潜在的编连(build)问题。典型的例子:
#if (WINVER>=0x0500)
#pragma message (“NOTE:WINVER has been defined as 0x0500 or greater.”)
#endif
消息Pragma是非常有用的,尤其是在复杂编连中。然而,如果你要检测一种特定的问题,而不是潜在的问题,使用#error预处理来代替打断编译会更直接一些。
每当你的程序中有错误而你想得到更多信息的时候,你应该去查看一下跟踪消息。由于VC输出窗口的缓冲区是有大小限制的,因此如果跟踪消息数据产生的速度超过输出窗口处理的速度,那么消息会塞满缓冲区,导致数据丢失。避免这个问题的简单方法是在输出大量数据的代码段如转储对象时,调用Sleep API函数。
keil中
debug
调试
问题
keil中
debug
调试中出现的各种
问题
解决
KEIL 增加自定义的
DEBUG
_PRINTF , 使用WATCH
窗口
显示
使用说明 包含
DEBUG
.h文件之后 使用
DEBUG
_PRINTF
打印
想要显示的内容, 然后将
DEBUG
_PRINTF_BUF数组添加到watch
窗口
中
打印
的
数据
会在watch串口显示 #define QUEUE_DEPTH 20 //显示记录的条数 #define QUEUE_BUF_SIZE 50//每条记录的最大长度
DEBUG
.c #include "
DEBUG
.h" #include ...
KEIL5软件使用技巧·
debug
仿真功能解析
本文详细介绍了STM32开发中的仿真调试配置与使用方法,详细说明了调试界面功能,包括寄存器
窗口
、汇编
窗口
、断点设置以及各种执行控制按钮的使用方法,文章提供了完整的操作流程和参数设置说明,适合STM32开发者参考使用。
keil利用
debug
和数组获取稳定调试
数据
title: keil利用
debug
和数组获取稳定调试
数据
背景 调robomaster的6020电机时,需要把pid的
数据
导出来进行matlab仿真,那么
问题
就来了,该怎么导出呢,我当时立刻想到的方法是用串口
打印
数据
,利用sprintf把pid的输入输出转成字符串,然后HAL_UART_Transmit()阻塞发送,在定时器中进行pid的计算以及
数据
的发送,但是效果却不尽人意。 因为电机是通过can总线协议,获取的是电压信息,-30000~30000范围,返回的
数据
是转速,角度,转矩和温度,调速度环,要
CAPL脚本中的时间
函数
和
打印
函数
functionsdword timeNow()long addTimeMeasurementStartTime(int64 timeSpan, long time[]); dword timeNow() dword timeNow() float timeNowFloat(); 没有本质区别,只不过返回值一个是整形,一个是浮点型 返回值的单位都是10ms 下面的返回值是ns: float TimeNowNS(); int64 timeNowInt64(); 没有本质区别,只不过返回值一个是整形
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章