DebugView 调试入门
软件下载地址:点击打开链接
debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的信息。支持Debug、Release模式编译的程序(即该软件捕获的是exe直接运行时,抛出的信息,而不是Visual Studio调试时的),甚至支持内核程序,而且能够定制各种过滤条件,让你只看到关心的输出信息,而且可以定制高亮显示的内容等等,非常方便。
程序非常轻量:目前最新的4.81,才4百多k。
软件运行界面如下:
捕捉Release模式的Win32程序输出的调试信息,需要选中Capture Global Win32选项:
通过编程输出一些调试信息到DebugView中,一共有三种方式:
System.Diagnostics.Debug.Write System.Diagnostics.Debugger.Log Kernal32.dll中的OutputDebugString方法其中:System.Diagnostics.Debug.Write方法仅仅适用于debug模式下编译出来的exe,其余两中方法与debug与release模式下编译出的exe通用。
一、System.Diagnostics.Debug.Write方法(Debug模式生成的exe)
for (int i = 0; i i++) System.Diagnostics.Debug.WriteLine("测试DebugView!!deg"); }监听效果如下:
从上图可以看到DebugView不仅仅捕获了一些咱们直接需要输出的信息,还有一些别的程序的无用信息,那么怎么进行过滤呢?
“Include”表示内容中包含的字符串,“Exclude”则是设置Debug Print内容中不包含的字符串。如在include:“deg”数据。单击“OK”之后,就会筛选出全部包含“GTA”的内容。如下图。在分类输出结果之后,就能较方便地排除和捕获系统异常情况。Exclude方法也与之相似。具体如下图:
此时就过滤掉了之前的那些无用信息了。
二、System.Diagnostics.Debugger.Log方法(Debug与Release通用)
for (int i = 0; i i++) System.Diagnostics.Debugger.Log(0, null, "测试DebugView!!release"); }
三、Kernal32.dll中的OutputDebugString方法(Debug与Release通用)
1、引入Kernal32.dll中的OutputDebugString方法
[DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern void OutputDebugString(string message);2、使用:
pre name="code" for (int i = 0; i i++) OutputDebugString("测试DebugView!JianKunKing"); }
四、使用DebugView捕获服务器信息
1、将DebugView软件放置到服务器上,在与程序同级目录:
的地方执行如下的bat命令:
Dbgview.exe /a /t /g /s双击bat命令后,效果如下:
点击同意后,效果如下:
双击右下角的图标,可以看到:
然后在本地机器上启动DebugView,并通过Connect连接到远程机器的DebugView,当远程机器中有调试信息输出时,本地就会捕获到,并展示出来:
设置连接ip:
输入ip:
此时,连接已经建立好了
此处依然以刚才测试【Kernal32.dll中的OutputDebugString方法】中的exe为测试源(即将该exe放置到服务器上,启动),启动该exe后,即可检测到信息如下:
小注:
1、DebugView与log4Net都可用于记录日志,那两者有什么区别吗?
个人感觉log4Net是做日志系统不可缺少的一部分,而DebugView比较适合及时调试,具体的选择就要看个人了。本文仅仅对于DebugView软件的基础使用加以阐述,更多的信息可以参见:DebugView官网
2、远程服务器启动命令DebugView软件的bat命令:点击打开链接
VS2019调试 实用调试技巧 (优秀程序员必看) Debug :通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。 Release :称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优 的,以便用户很好地使用。
80%的程序员都不了解的调试技巧 程序员的工作内容,除了大部分时间写代码之外,因为有不少的时间是用在调试代码上。甚至说不是在调试代码,就是即将调试代码。今天我们来谈谈调试代码的一些技巧,在使用IDE提供的debugger时一些快速定位问题的方式。
相关文章
- pycharm如何调试代码_pycharm调试debug入门
- React源码学习入门(三)React源码codebase架构和调试介绍
- VSCode配置调试编译java环境,史上最全!!!
- ios开发真机调试_ios真机调试
- 如何让调试线上 JS 报错像调试本地源码一样优雅?
- 1.启动调试服务
- 嵌入式入门必看!调试工具安装——基于 AM64x核心板
- 令人沮丧的C++性能调试
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 注入工具收尾操作 | 关闭注入的动态库 | 恢复寄存器 | 脱离远程调试附着 )
- 【Android NDK 开发】NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )
- Python 自动化指南(繁琐工作自动化)第二版:十一、调试
- MySQL调试:攻克输出难题(mysql调试输出)
- 使用微软的 ProcDump 调试 Linux
- debugFunc Linux调试实战:从入门到精通(funclinux)
- 脚本Redis调试Lua脚本一次完美尝试(redis 调试lua)
- JavaScript高级程序设计错误处理与调试学习笔记
- AndroidApp调试内存泄露之Cursor篇
- 基于Linux调试工具strace与gdb的常用命令总结