当前位置:  开发笔记 > 编程语言 > 正文

如何在发布模式下启用TRACE宏?

如何解决《如何在发布模式下启用TRACE宏?》经验,为你挑选了1个好方法。

TRACE宏当代码被编译可用于输出诊断消息到调试器的调试模式.在发布模式下,我需要相同的消息.有没有办法实现这个目标?

(请不要浪费你的时间讨论为什么我不应该在发布模式使用TRACE :-)



1> Ferruccio..:

实际上,TRACE宏比OutputDebugString更灵活.它采用printf()样式格式字符串和参数列表,而OutputDebugString只接受一个字符串.为了在发布模式下实现完整的TRACE功能,您需要执行以下操作:

void trace(const char* format, ...)
{
   char buffer[1000];

   va_list argptr;
   va_start(argptr, format);
   wvsprintf(buffer, format, argptr);
   va_end(argptr);

   OutputDebugString(buffer);
}


我知道这只是一个例子,但在这个例子中有一个巨大的缓冲区溢出潜力.
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有