DebugView调试C#程序 学习总结
生活随笔
收集整理的這篇文章主要介紹了
DebugView调试C#程序 学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
DebugView調試C#程序
http://www.cnblogs.com/ahuo/archive/2007/04/09/705886.htmlusing 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 精簡版的支持。
刷新輸出緩沖區然后關閉 Listeners。
Fail
受 .NET Framework 精簡版的支持。
已重載。發出錯誤信息。
Flus
受 .NET Framework 精簡版的支持。
刷新輸出緩沖區并使放入緩沖區的數據寫入 Listeners 集合。
Indent 將當前的 IndentLevel 增加 1。
Unindent 將當前的 IndentLevel 減少 1。
Writ
受 .NET Framework 精簡版的支持。
已重載。將有關調試的信息寫入 Listeners 集合中的跟蹤偵聽器。
WriteI
受 .NET Framework 精簡版的支持。
已重載。如果條件為 true,則將有關調試的信息寫入 Listeners 集合中的跟蹤偵聽器。
WriteLine
受 .NET Framework 精簡版的支持。
已重載。將有關調試的信息寫入 Listeners 集合中的跟蹤偵聽器。
WriteLineIf
受 .NET Framework 精簡版的支持。
已重載。如果條件為 true,則將有關調試的信息寫入 Listeners 集合中的跟蹤偵聽器。
========
用DebugView調試C#程序
http://blog.csdn.net/gaoxiang19820514/article/details/66499071.引用
?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?
點擊OK后,便可用DebugView調試C#程序了。
========
DebugView 調試入門
http://blog.csdn.net/jiankunking/article/details/44984487debugview 可以捕獲程序中由TRACE(debug版本)和OutputDebugString輸出的信息。支持Debug、Release模式編譯的程序(即該軟件捕獲的是exe直接運行時,拋出的信息,而不是Visual Studio調試時的),甚至支持內核程序,而且能夠定制各種過濾條件,讓你只看到關心的輸出信息,而且可以定制高亮顯示的內容等等,非常方便。
程序非常輕量:目前最新的4.81,才4百多k。
軟件運行界面如下:
捕捉Release模式的Win32程序輸出的調試信息,需要選中Capture Global Win32選項:
通過編程輸出一些調試信息到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("測試DebugView!!deg"); ?
? ? ? ? ? } ?
監聽效果如下:
從上圖可以看到DebugView不僅僅捕獲了一些咱們直接需要輸出的信息,還有一些別的程序的無用信息,那么怎么進行過濾呢?
“Include”表示內容中包含的字符串,“Exclude”則是設置Debug Print內容中不包含的字符串。如在include:“deg”數據。單擊“OK”之后,就會篩選出全部包含“GTA”的內容。如下圖。在分類輸出結果之后,就能較方便地排除和捕獲系統異常情況。Exclude方法也與之相似。具體如下圖:
此時就過濾掉了之前的那些無用信息了。
二、System.Diagnostics.Debugger.Log方法(Debug與Release通用)
[csharp] view plain copy
for (int i = 0; i < 50; i++) ?
? ? ? ? ? { ?
? ? ? ? ? ? ? System.Diagnostics.Debugger.Log(0, null, "測試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("測試DebugView!JianKunKing"); ?
? ? ? ? ? ? } ?
上面說的都是使用DebugView捕獲本地exe程序的信息,那么可不可以用來捕獲服務器上的信息呢?
四、使用DebugView捕獲服務器信息
1、將DebugView軟件放置到服務器上,在與程序同級目錄:
的地方執行如下的bat命令:
[plain] view plain copy
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命令:點擊打開鏈接
========
DebugView使用詳解
http://www.cnblogs.com/wolfrickwang/p/3295925.htmlDebugView是一個系統調試信息輸出的捕獲工具。
在程序中使用如下函數:
1> OutputDebugString ?或者在MFC中使用TRACE
2> 內核模式中使用Out_Debug_String,DbgPrint ,_Debug_Printf_Service
?
編譯程序為DEBUG版本,然后運行程序(不是在vs 中運行,是單獨運行),打開debugview 就可以在其中看到輸出的調試信息。
Debugview 也支持遠程調試,在本機運行Dbgview.exe /c/s/t 可以讓DebugView以服務的形式運行。在遠端打開Debugview,點擊Computer/connect ,輸入查看調試信息主機的IP ,點擊確定即可。
使用DebugView時候可以選擇捕獲程序調試信息為用戶程序或者內核程序。
注意Debugview的過濾功能,比較實用,include 表示調試信息包含的字符串,exclue 表示不包含的字符串,多個字符串使用“;”號隔開。
可以參見博客http://blog.sina.com.cn/s/blog_9b477e8d01016lh7.html 中有簡要的圖文使用說明。
========
總結
以上是生活随笔為你收集整理的DebugView调试C#程序 学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。