人较笨且记性不好,故记录在此.折叠代码打不开请F5.本博中很多是转载收录其他网友的文章(原文地址请见博文末尾),所有权为原作者所有!!!
此博客已不再更新和维护,欢迎关注我的github新博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

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"%d\n", 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信息了


【参考资料 感谢作者】

DebugView图文教程



posted on 2011-10-31 15:29  子坞  阅读(20133)  评论(0编辑  收藏  举报