日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

DebugView调试C#程序 学习总结

發(fā)布時(shí)間:2025/4/14 C# 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DebugView调试C#程序 学习总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

DebugView調(diào)試C#程序

http://www.cnblogs.com/ahuo/archive/2007/04/09/705886.html


using System;
using System.Collections.Generic;
using System.Text;
using System.Diagnostics;


namespace ConsoleApplication1
{
? ? class Program
? ? {
? ? ? ? static void Main(string[] args)
? ? ? ? {
? ? ? ? ? ? Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
? ? ? ? ? ? Debug.AutoFlush = true;
? ? ? ? ? ? Debug.Indent();
? ? ? ? ? ? Debug.WriteLine("Entering Main"); //顯示在DebugView的信息
? ? ? ? ? ? Console.WriteLine("Hello World.");
? ? ? ? ? ? Debug.WriteLine("Exiting Main");?
? ? ? ? ? ? Debug.Unindent();
? ? ? ? }
? ? }
}


http://files.cnblogs.com/ahuo/dbgview.rar


公共方法


Assert
受 .NET Framework 精簡版的支持。


已重載。檢查條件,如果該條件為 false,則顯示消息。
Close
受 .NET Framework 精簡版的支持。


刷新輸出緩沖區(qū)然后關(guān)閉 Listeners。
Fail
受 .NET Framework 精簡版的支持。


已重載。發(fā)出錯(cuò)誤信息。
Flus
受 .NET Framework 精簡版的支持。


刷新輸出緩沖區(qū)并使放入緩沖區(qū)的數(shù)據(jù)寫入 Listeners 集合。
Indent 將當(dāng)前的 IndentLevel 增加 1。
Unindent 將當(dāng)前的 IndentLevel 減少 1。
Writ
受 .NET Framework 精簡版的支持。


已重載。將有關(guān)調(diào)試的信息寫入 Listeners 集合中的跟蹤偵聽器。
WriteI
受 .NET Framework 精簡版的支持。


已重載。如果條件為 true,則將有關(guān)調(diào)試的信息寫入 Listeners 集合中的跟蹤偵聽器。
WriteLine
受 .NET Framework 精簡版的支持。


已重載。將有關(guān)調(diào)試的信息寫入 Listeners 集合中的跟蹤偵聽器。
WriteLineIf
受 .NET Framework 精簡版的支持。


已重載。如果條件為 true,則將有關(guān)調(diào)試的信息寫入 Listeners 集合中的跟蹤偵聽器。
========

用DebugView調(diào)試C#程序

http://blog.csdn.net/gaoxiang19820514/article/details/6649907


1.引用


?using System.Diagnostics;


2.顯示在DebugView的信息


Debug.WriteLine(DateTime.Now.ToString("HH-mm-ss")+" "+DateTime.Now.Millisecond.ToString() + " cti_message", "my");


3.在Dbgview.exe 過濾其它信息


Edit -> Filter/Hightlight... -> include: 中輸入 *my?


點(diǎn)擊OK后,便可用DebugView調(diào)試C#程序了。
========

DebugView 調(diào)試入門

http://blog.csdn.net/jiankunking/article/details/44984487


debugview 可以捕獲程序中由TRACE(debug版本)和OutputDebugString輸出的信息。支持Debug、Release模式編譯的程序(即該軟件捕獲的是exe直接運(yùn)行時(shí),拋出的信息,而不是Visual Studio調(diào)試時(shí)的),甚至支持內(nèi)核程序,而且能夠定制各種過濾條件,讓你只看到關(guān)心的輸出信息,而且可以定制高亮顯示的內(nèi)容等等,非常方便。
程序非常輕量:目前最新的4.81,才4百多k。
軟件運(yùn)行界面如下:


捕捉Release模式的Win32程序輸出的調(diào)試信息,需要選中Capture Global Win32選項(xiàng):


通過編程輸出一些調(diào)試信息到DebugView中,一共有三種方式:
[csharp] view plain copy
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)
[csharp] view plain copy
for (int i = 0; i < 50; i++) ?
? ? ? ? ? { ?
? ? ? ? ? ? ? System.Diagnostics.Debug.WriteLine("測(cè)試DebugView!!deg"); ?
? ? ? ? ? } ?
監(jiān)聽效果如下:


從上圖可以看到DebugView不僅僅捕獲了一些咱們直接需要輸出的信息,還有一些別的程序的無用信息,那么怎么進(jìn)行過濾呢?


“Include”表示內(nèi)容中包含的字符串,“Exclude”則是設(shè)置Debug Print內(nèi)容中不包含的字符串。如在include:“deg”數(shù)據(jù)。單擊“OK”之后,就會(huì)篩選出全部包含“GTA”的內(nèi)容。如下圖。在分類輸出結(jié)果之后,就能較方便地排除和捕獲系統(tǒng)異常情況。Exclude方法也與之相似。具體如下圖:


此時(shí)就過濾掉了之前的那些無用信息了。
二、System.Diagnostics.Debugger.Log方法(Debug與Release通用)
[csharp] view plain copy
for (int i = 0; i < 50; i++) ?
? ? ? ? ? { ?
? ? ? ? ? ? ? System.Diagnostics.Debugger.Log(0, null, "測(cè)試DebugView!!release"); ?
? ? ? ? ? } ?


三、Kernal32.dll中的OutputDebugString方法(Debug與Release通用)
1、引入Kernal32.dll中的OutputDebugString方法
[csharp] view plain copy
[DllImport("kernel32.dll", CharSet = CharSet.Auto)] ?
? ? ?public static extern void OutputDebugString(string message); ?
2、使用:
[csharp] view plain copy
<pre name="code" class="csharp"> for (int i = 0; i < 50; i++) ?
? ? ? ? ? ? { ?
? ? ? ? ? ? ? ? OutputDebugString("測(cè)試DebugView!JianKunKing"); ?
? ? ? ? ? ? } ?
上面說的都是使用DebugView捕獲本地exe程序的信息,那么可不可以用來捕獲服務(wù)器上的信息呢?
四、使用DebugView捕獲服務(wù)器信息
1、將DebugView軟件放置到服務(wù)器上,在與程序同級(jí)目錄:


的地方執(zhí)行如下的bat命令:
[plain] view plain copy
Dbgview.exe /a /t /g /s ?
雙擊bat命令后,效果如下:


點(diǎn)擊同意后,效果如下:


雙擊右下角的圖標(biāo),可以看到:


然后在本地機(jī)器上啟動(dòng)DebugView,并通過Connect連接到遠(yuǎn)程機(jī)器的DebugView,當(dāng)遠(yuǎn)程機(jī)器中有調(diào)試信息輸出時(shí),本地就會(huì)捕獲到,并展示出來:
設(shè)置連接ip:


輸入ip:


此時(shí),連接已經(jīng)建立好了
此處依然以剛才測(cè)試【Kernal32.dll中的OutputDebugString方法】中的exe為測(cè)試源(即將該exe放置到服務(wù)器上,啟動(dòng)),啟動(dòng)該exe后,即可檢測(cè)到信息如下:


小注:
1、DebugView與log4Net都可用于記錄日志,那兩者有什么區(qū)別嗎?
個(gè)人感覺log4Net是做日志系統(tǒng)不可缺少的一部分,而DebugView比較適合及時(shí)調(diào)試,具體的選擇就要看個(gè)人了。本文僅僅對(duì)于DebugView軟件的基礎(chǔ)使用加以闡述,更多的信息可以參見:DebugView官網(wǎng)
2、遠(yuǎn)程服務(wù)器啟動(dòng)命令DebugView軟件的bat命令:點(diǎn)擊打開鏈接
========

DebugView使用詳解

http://www.cnblogs.com/wolfrickwang/p/3295925.html


DebugView是一個(gè)系統(tǒng)調(diào)試信息輸出的捕獲工具。


在程序中使用如下函數(shù):


  1> OutputDebugString ?或者在MFC中使用TRACE


  2> 內(nèi)核模式中使用Out_Debug_String,DbgPrint ,_Debug_Printf_Service
?


編譯程序?yàn)镈EBUG版本,然后運(yùn)行程序(不是在vs 中運(yùn)行,是單獨(dú)運(yùn)行),打開debugview 就可以在其中看到輸出的調(diào)試信息。


Debugview 也支持遠(yuǎn)程調(diào)試,在本機(jī)運(yùn)行Dbgview.exe /c/s/t 可以讓DebugView以服務(wù)的形式運(yùn)行。在遠(yuǎn)端打開Debugview,點(diǎn)擊Computer/connect ,輸入查看調(diào)試信息主機(jī)的IP ,點(diǎn)擊確定即可。


使用DebugView時(shí)候可以選擇捕獲程序調(diào)試信息為用戶程序或者內(nèi)核程序。


注意Debugview的過濾功能,比較實(shí)用,include 表示調(diào)試信息包含的字符串,exclue 表示不包含的字符串,多個(gè)字符串使用“;”號(hào)隔開。


可以參見博客http://blog.sina.com.cn/s/blog_9b477e8d01016lh7.html 中有簡要的圖文使用說明。
========

總結(jié)

以上是生活随笔為你收集整理的DebugView调试C#程序 学习总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。