解决方案

DebugView的使用

seo靠我 2023-09-24 12:35:35

目录

一、前言二、本机调试1.DebugView程序文件说明2.OutputDebugString函数使用3.示例程序4.远程调试 三、问题与注意事项四、小结

一、前言

DebugView是SEO靠我windows下的一款调试工具,可以捕获程序输出的日志,分为64位和32位,支持应用层和内核层的日志捕获,利用它排除bug是个不错的选择。本文主要关注应用层面的使用。 一般程序日志记录SEO靠我可以输出到文件进行查看,但是使用DebugView不会自动输出到文件,它的日志信息是驻留在进程内存中。

二、本机调试

1.DebugView程序文件说明

![在这里插入图片描述](https://img-bSEO靠我log.csdnimg.cn/8322c46457a444ab9edd8e24a43f9702.png) Dbgview.chm: 帮助文档 Dbgview.exe:捕SEO靠我获32位进程的日志输出 Dbgview64.exe/Dbgview64a.exe: 捕获64位进程的日志输出,有平台相关性 DebugView主界面 SEO靠我![在这里插入图片描述](https://img-blog.csdnimg.cn/d70733a3427b48c1b355859f50d48501.png)

2.OutputDebugString函数使SEO靠我

OutputDebugString是一个Windows Api函数,可以在应用程序中使用。它的作用是发送日志,而DebugView是接收日志,。捕获的时候需要提前启动DebugView,当然不启动DSEO靠我ebugView的话应用程序也不会因此而崩溃。 它的ANSI和UNICODE版本签名为 WINBASEAPI VOID WINAPI OutputDebugStrinSEO靠我gA(_In_opt_ LPCSTR lpOutputString); WINBASEAPI VOID WINAPI OutputDebugStringW(_In_opt_ LPCWSEO靠我STR lpOutputString);

在C#中调用该方法

[DllImport("kernel32.dll", CharSet = CharSet.Auto)] public statSEO靠我ic extern void OutputDebugString(string message);

System.Diagnostics.Trace.WriteLine也可以实现和OutputDebugSEO靠我String类似的效果

3.示例程序

测试代码如下

using System; using System.Collections.Generic; using System.SEO靠我Linq; using System.Text; using System.Runtime.InteropServices; namespace DeSEO靠我bugViewTest { class Program { [DllImport("kernel32.dll", CharSet = CSEO靠我harSet.Auto)] public static extern void OutputDebugString(string message); static vSEO靠我oid Main(string[] args) { Console.WriteLine("BEGIN"); for (int i = 0; i < 10SEO靠我; i++) { OutputDebugString("debugstring"); System.Diagnostics.Trace.WriteLinSEO靠我e("tracestring"); } Console.WriteLine("END"); } } }

运行测试程序,查SEO靠我看DebugView的日志列表

DebugView会默认连接到 本机local

在C#中调用时不管编译的是Debug还是Release都是能正常捕获的

4.远程调试

远程调试需要在本地和远程机器上都启动DebSEO靠我ugView进程

远程机器作为接收请求的一端,需要在命令行下加参数启动 ,即 dbgview /a 可以使用 tasklist /fi “imagename eq dbgview.exe”

命令得到dbgviSEO靠我ew的进程id

再结合 netstat -ano | find

命令找到dbgview监听的端口

如图所示,dbgview默认监听2020端口

本机作为请求的一端,可以通过菜单栏的 “Connect” 按钮连接SEO靠我到远程的DebugView

需要先断开到本地的默认连接

三、问题与注意事项

1.服务进程监控

DebugView默认捕获应用层普通的win32应用程序,菜单栏默认 勾选 “Capture Win32”

如果被监SEO靠我控进程是以windows服务形式存在的,那么需要使用管理员权限启动DebugView进程

然后在DebugView菜单栏勾选 “Capture Global Win32”

勾选 "Capture KernSEO靠我el"会对内核的日志输出进行捕获

2.一些服务器防火墙开启的情况下,需要对dbgview监听的端口进行放行

四、小结

工欲善其事必先利其器,所以选择一个合适的工具是多么的重要。debugview不仅能够监控SEO靠我本地进程日志输出还能够监控远程进程的日志输出,还是很有实用性。
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2