1.简介
下载地址 http://technet.microsoft.com/en-us/sysinternals/bb896647
默认的VS输出窗口功能较弱, debugview可对输出日志消息一些处理,满足特定需求.
按关键字过滤:去除无关日志,眼睛清静
按关键字着色:分类提示
自动输出日志打印时间:大致耗时分析等
cltrl+f查找功能:
2.使用方法
Win32下直接调用 OutputDebugString(str)即可在debugview中输出
不能显示的一些常见问题:http://blog.csdn.net/yinzhiqing/article/details/6585383
3.VC++在debug模式下使用DebugView
此版本在debug模式下调用OutputDebugString是不会在debugview里输出的,某些情况下可能需要调试运行程序又想看到debugview中的输出
解决方法:
编写一个中转程序(此程序后台运行,接收其它程序发来的消息并调用OutputDebugString)
调试运行的程序调用sendmessage给中转程序
void DbgView(const char* fm, ...)
{
HWND hwnd = ::FindWindow(NULL, _T("DbgviewTranslate"));
if (hwnd)
{
static char szMsg[1024];
va_list argList;
va_start(argList, fm);
vsprintf_s(szMsg, fm, argList);
va_end(argList);
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)(LPCTSTR)szMsg);
}
}
for (size_t i = 0; i < 5; i++)
{
DbgView("[song1]: index = %d", i);
}
for (size_t i = 0; i < 5; i++)
{
DbgView("[song2]: index = %d", i);
}
for (size_t i = 0; i < 5; i++)
{
DbgView("[song3]: index = %d", i);
}