调试输出信息OutPutDebugString
OutPutDebugString(TEXT("在调试器里输出的类容"));
#define MAXDUGBUFF 20
#define OutError(ErrorEvent) {
wchar_t DebugChar[MAXDUGBUFF];
ZeroMemory(DebugChar, MAXDUGBUFF * sizeof(wchar_t));
wsprintfW(DebugChar, L"%s Error(%d) at line(%d)n", ErrorEvent, GetLastError(), __LINE__);
OutputDebugStringW(DebugChar);
}
上面这段代码适用于执行函数出错之后要打印错误代码的一段宏。
#define MAXNUMBUFF 10
#define OutError(Number) {
wchar_t NumberChar[MAXNUMBUFF];
ZeroMemory(NumberChar, MAXNUMBUFF * sizeof(wchar_t));
wsprintfW(NumberChar, L"%dn", Number);
OutputDebugStringW(NumberChar);
}
上面这段代码适用于打印数字。
可以很方便的捕获系统实时输出的Debug信息,并保存为日志文件。可以远程捕获服务器上的Debug信息。比较方便开发人员在系统发布前监控一些系统流程和异常,甚至在系统不大的情况下,更能在部署后进行远程监控功能。
1、DbgView界面和监控方法
打开软件后,顶部工具栏中选择监控主机。先看连接本地机调试,点击“Connect Local”即可。
在这个工具栏上,主要看几个图标
此按钮,表示是否开启捕获服务
此按钮,表示是否捕获系统内核的Debug信息
此按钮,表示是否捕获一般Win32应用,也就相当于我们的应用的Debug信息
注意:只有调用了WinDebug中方法的地方的输出Debug信息才能被DebugView捕获。
再来看看捕获的应用信息:将打开两个按钮的叉叉去掉,就会看到DebugView可能输出一些信息。如下图:
这些都是系统中的应用调用WinAPI所输出的Debug信息。但是只有红色部分是我们的Demo所输出的信息。
此时我们可以新建过滤器,只查看我们自己想看到的信息打开后我们看到下图
在Include和Exclude,分别表示Debug Print的内容“包含”“不包含”的字符串。
例如在include中输入:GTA
点击OK后
DebugView就会只显示GTA开头的Debug信息,因此在写程序时,为了监控方便,我们可以将Debug信息分类,以不同的前缀或标志为约束,统一Debug输出格式,方便以后排除和捕获系统异常等情况。
Exclude与之相反,这里不介绍了。
另外说说,这个按钮表面显示的记录条数。
2、远程捕获
可以在本机调试捕获服务器上的Debug信息。
在服务器上新建dbgView.exe程序的快捷方式
在快捷方式的“目标“后键入:空格+/c字符。然后确定。
再运行快捷方式,服务器就会等待连接。
此时客户端打开自己的dbgview.exe
点击connect后,输入服务器的IP地址,便连上服务器了。这样,用户可以在本地直接捕获服务器上的Debug信息了。
主要功能就是这些。另外,如果要在运行时应用不输出debug信息,可以将web.config或app.config中的
<system.web>
<compilation debug="true"targetFramework="4.0"/>
设置为false,然后在调用WinDebug的地方就不会再输出Debug信息了
原文链接:http://archive.cnblogs.com/a/2230326/