RETAILMSG

定义在文件 dbgapi.h 里面,[size=4]location[/size]: //PUBLIC//COMMON//SDK//INC//dbgapi.h。

如果是 SHIP_BUILD 版本。 所有的都不会打印出来。
因为
#ifdef SHIP_BUILD

#define ERRORMSG(cond,printf_exp) ((void)0)
#define RETAILMSG(cond,printf_exp) ((void)0)
#define DEBUGMSG(cond,printf_exp) ((void)0)
#define DEBUGLED(cond,parms) ((void)0)
#define DBGCHK(module,exp) ((void)0)
#define DEBUGCHK(exp) ((void)0)
#define DEBUGREGISTER(hMod) ((void)0)
#define RETAILREGISTERZONES(hMod) ((void)0)

#else // SHIP_BUILD
#ifdef DEBUG

#define DEBUGMSG(cond,printf_exp) //
((void)((cond)?(NKDbgPrintfW printf_exp),1:0))
#define DBGCHK(module,exp) //
((void)((exp)?1:( //
NKDbgPrintfW ( TEXT(/"%s: DEBUGCHK failed in file %s at line %d //r//n/"), //
(LPWSTR)module, TEXT(__FILE__) ,__LINE__ ), //
DebugBreak(), //
  0 //
)))

#define DEBUGLED(cond,parms) //
((void)((cond)?(WriteDebugLED parms),1:0))

#define DEBUGCHK(exp) DBGCHK(dpCurSettings.lpszName, exp)
extern DBGPARAM dpCurSettings;

#define DEBUGREGISTER(hMod) RegisterDbgZones(hMod, &dpCurSettings)

#else // DEBUG

#define DEBUGMSG(cond,printf_exp) ((void)0)
#define DEBUGLED(cond,parms) ((void)0)
#define DBGCHK(module,exp) ((void)0)
#define DEBUGCHK(exp) ((void)0)
#define DEBUGREGISTER(hMod) ((void)0)

#endif // DEBUG

#define RETAILMSG(cond,printf_exp) //
((cond)?(NKDbgPrintfW printf_exp),1:0)

#define ERRORMSG(cond,printf_exp) //
((cond)?(NKDbgPrintfW(TEXT(/"ERROR: %s line %d: /"),TEXT(__FILE__),__LINE__), NKDbgPrintfW printf_exp),1:0)

#define RETAILREGISTERZONES(hMod) RegisterDbgZones(hMod, &dpCurSettings)

#endif // SHIP_BUILD

DEBUGMSG 只在DEBUG版本时输出信息,而RETAILMSG在DEBUG和Release下都会输出信息。

它们最终都是调用的NKDbgPrintfW 来输出信息。

另外如果将代码移植到其它编译器,可以自己定义RETAILMSG函数,

如:#define RETAILMSG(cond,printf_exp) ((cond)?(Uart_Printf printf_exp),1:0)

Uart_Printf()函数的实现在之前的文章中有所说明。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值