參考鏈接:http://blog.csdn.net/jiankunking/article/details/44984487
軟件下載地址:點擊打開鏈接
debugview 可以捕獲程序中由TRACE(debug版本)和OutputDebugString輸出的信息。支持Debug、Release模式編譯的程序(即該軟件捕獲的是exe直接運行時,拋出的信息,而不是Visual Studio調試時的),甚至支持內核程序,而且能夠定制各種過濾條件,讓你只看到關心的輸出信息,而且可以定制高亮顯示的內容等等,非常方便。
程序非常輕量:目前最新的4.81,才4百多k。
軟件運行界面如下:
捕捉Release模式的Win32程序輸出的調試信息,需要選中Capture Global Win32選項:
通過編程輸出一些調試信息到DebugView中,一共有三種方式:
其中:System.Diagnostics.Debug.Write方法僅僅適用于debug模式下編譯出來的exe,其余兩中方法與debug與release模式下編譯出的exe通用。
一、System.Diagnostics.Debug.Write方法(Debug模式生成的exe)
監聽效果如下:
從上圖可以看到DebugView不僅僅捕獲了一些咱們直接需要輸出的信息,還有一些別的程序的無用信息,那么怎么進行過濾呢?
“Include”表示內容中包含的字符串,“Exclude”則是設置Debug Print內容中不包含的字符串。如在include:“deg”數據。單擊“OK”之后,就會篩選出全部包含“GTA”的內容。如下圖。在分類輸出結果之后,就能較方便地排除和捕獲系統異常情況。Exclude方法也與之相似。具體如下圖:
此時就過濾掉了之前的那些無用信息了。
二、System.Diagnostics.Debugger.Log方法(Debug與Release通用)
三、Kernal32.dll中的OutputDebugString方法(Debug與Release通用)
1、引入Kernal32.dll中的OutputDebugString方法
2、使用:
四、使用DebugView捕獲服務器信息
1、將DebugView軟件放置到服務器上,在與程序同級目錄:
的地方執行如下的bat命令:
雙擊bat命令后,效果如下:
點擊同意后,效果如下:
雙擊右下角的圖標,可以看到:
然后在本地機器上啟動DebugView,并通過Connect連接到遠程機器的DebugView,當遠程機器中有調試信息輸出時,本地就會捕獲到,并展示出來:
設置連接ip:
輸入ip:
此時,連接已經建立好了
此處依然以剛才測試【Kernal32.dll中的OutputDebugString方法】中的exe為測試源(即將該exe放置到服務器上,啟動),啟動該exe后,即可檢測到信息如下:
小注:
1、DebugView與log4Net都可用于記錄日志,那兩者有什么區別嗎?
個人感覺log4Net是做日志系統不可缺少的一部分,而DebugView比較適合及時調試,具體的選擇就要看個人了。本文僅僅對于DebugView軟件的基礎使用加以闡述,更多的信息可以參見:DebugView官網
2、遠程服務器啟動命令DebugView軟件的bat命令:點擊打開鏈接