win32使用OutputDebugString输出调试信息的方法

简介: 在win32程序中可以使用函数OutputDebugString输出调试信息。输出的结果可以在vs的集成环境中看到,也可以使用工具DbgView.exe捕捉结果。函数的原形如下: OutputDebugString The OutputDebugString function sends a string to the debugger for display.

在win32程序中可以使用函数OutputDebugString输出调试信息。输出的结果可以在vs的集成环境中看到,也可以使用工具DbgView.exe捕捉结果。函数的原形如下:

OutputDebugString

The OutputDebugString function sends a string to the debugger for display.

 

void OutputDebugString( LPCTSTR lpOutputString);
Parameters
lpOutputString
[in] Pointer to the null-terminated string to be displayed.
Return Values
This function does not return a value

因为OutputDebugString的参数是字符串,而我们在实际使用过程中希望能像printf一样支持变参。可以用下面的方法实现这个效果:

inline bool MyDbgStr(LPCSTR lpszFormat, ...)
{
    va_list   args;
    int       nBuf;
    TCHAR     szBuffer[512];

    va_start(args, lpszFormat);

    nBuf = _vsnprintf(szBuffer, sizeof(szBuffer)*sizeof(TCHAR), lpszFormat, args);
    Assert(nBuf > 0);
    OutputDebugString(szBuffer);

    va_end(args);
}

目录
相关文章
关于 C#使用Console.WriteLine调试没有命令行输出 的解决方法
关于 C#使用Console.WriteLine调试没有命令行输出 的解决方法
关于 C#使用Console.WriteLine调试没有命令行输出 的解决方法
关于 QtCreator中写Qt程序遇到printf不输出问题 的解决方法
关于 QtCreator中写Qt程序遇到printf不输出问题 的解决方法
【Linux】直接打印堆栈调试信息
【Linux】直接打印堆栈调试信息
【Linux】直接打印堆栈调试信息
VS无法断点调试,编译时为生成pdb文件,不包含调试信息(未加载任何符号)
VS无法断点调试,编译时为生成pdb文件,不包含调试信息(未加载任何符号)
453 0
|
程序员 C++
VS2015+Qt5.9.1编译报错:Moc系统找不到指定路径,error MSB6006 cmd.exe 已退出,代码为3 -- 完美解决
VS2015+Qt5.9.1编译报错:Moc系统找不到指定路径,error MSB6006 cmd.exe 已退出,代码为3 -- 完美解决
2326 0
|
Python
pprint代替print更友好的打印调试信息
pprint 是 “pretty printer” 的简写,“pretty” 的含义是 “漂亮的、美观的”,因此 pprint 的含义便是:漂亮的打印。 这是个相当简单却有用的模块,主要用于打印复杂的数据结构对象,例如多层嵌套的列表、元组和字典等。
693 0
Win2000下打印设定
Win2000下打印设定
503 0
OutputDebugString输出调试信息到debugtrack
OutPutDebugString()函数的输出则可以用DebugView捕获(DebugView也可以捕获TRACE宏的输出)eg:OutPutDebugString("输出第一调试信息");备注: 先启动了debugview 然后按F5运行我的代码。
858 0
解决Qt生成exe错误:无法定位程序输入点。。。
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hanniel/article/details/83627298 最近下载Qt来玩,踩了不少坑。
2798 0