关于Release下软件调试信息输出,主要原理,是待调试信息的应用程序,发送消息到调试接器,然后调试接收器再将调试信息接受下来,然后供用户选择输出。达到分析调试的目的。
本人开发了一个调试信息接收器,如要使用,可以到我的资源里面下载--全能调试器,或在google中搜索然后现下载。这是一款软件开发者常用的软件,全能调试器是解决您的问题的好帮助。全能调试器不仅仅能作为调试信息输出,而且可以作为一个信息输出软件,监视您的软件运行,欢迎您提出宝贵意见。
使用方法如下
1、在您的程序中定义后面的调用函数。
2、在使用的地方调用这个方法。就可以在DbgView中看到调试信息了。
DT("work ok in line %d",m_nLine);
//DT is a macro to help debug app by dump useful info,
//it works for debug and release version.
//DT("work ok in line %d",m_nLine);
//define following line to enable DT
#define DT DebugTrace
BOOL DebugTrace(char * lpszFormat,...)
{
static HWND hwnd = ::FindWindowA(NULL, "DbgView");
if(!IsWindow(hwnd))
hwnd = ::FindWindowA(NULL, "DbgView");
if(hwnd)
{
static char szMsg[512];
va_list argList;
va_start(argList, lpszFormat);
try
{
vsprintf(szMsg,lpszFormat, argList);
}
catch(...)
{
strcpy(szMsg ,"DebugHelper:Invalid string format!");
}
va_end(argList);
DWORD dwId = GetCurrentProcessId();
::SendMessage(hwnd,WM_SETTEXT,dwId,(LPARAM)(LPCTSTR)szMsg);
}
return TRUE;
}