1. 程式人生 > >delphi 中OutputDebugString 函式的妙用(使用DebugView或者Pascal Analyzer軟體,在執行過程中就能監視和捕捉日誌,而且通過網路就能監視)

delphi 中OutputDebugString 函式的妙用(使用DebugView或者Pascal Analyzer軟體,在執行過程中就能監視和捕捉日誌,而且通過網路就能監視)

 

原文地址 https://www.peganza.com/delphi-and-outputdebugstring.html

曾經想要實時監控您的Delphi應用程式,並能夠檢視日誌訊息嗎?當然,您始終可以在RAD Studio IDE中以完全除錯模式執行。另一種方法是輸出日誌訊息,例如輸出到文字檔案。您還可以使用OutputDebugString函式。

這種方法的一個優點是它儘可能少地影響您的應用程式。您不必關心檔案處理。只需呼叫一個函式。

OutputDebugString函式在Win32 API中的RTL單元Winapi.Windows中定義。

你只需從你的程式碼中呼叫它,如下所示:

1 2 3 4 5 6 7 8 9 10 11 ..
uses    Winapi . Windows; .. var     Msg : string ; begin    
OutputDebugString( 'This is my message' );    Msg := 'This is another log message' ;    OutputDebugString( PChar (Msg)); ..

如果重複或迴圈呼叫OutputDebugString,可能會導致一些效能開銷。因此,請確保您的釋出版本中不包含對OutputDebugString的呼叫。要避免它,您可以使用條件編譯指令,如:

1 2 3 4 5 ..    (*$IFDEF ODS*)    OutputDebugString( 'This is my message' );    (*$ENDIF*) ..

只有在想以這種方式記錄訊息時才啟用編譯指令“ODS”。另外,考慮為OutputDebugString呼叫建立一個包裝函式,這樣您的程式碼將更易於閱讀和維護。像這樣的東西:

1 2 3 4 5 6 procedure  DebugODS( const  Msg : string ); begin    (*$IFDEF ODS*)    OutputDebugString( PChar (Msg));    (*$ENDIF*) end ;

如果從RAD Studio IDE中執行,日誌訊息將顯示在輸出視窗中。

但是如果你獨立執行,很有可能使用SysInternals(Microsoft)提供的免費DebugView應用程式(dbgview.exe)。來自其網頁的資訊:

DebugView是一個應用程式,它允許您監視本地系統或網路上可通過TCP / IP訪問的任何計算機上的除錯輸出。它能夠顯示核心模式和Win32除錯輸出,因此您不需要偵錯程式來捕獲應用程式或裝置驅動程式生成的除錯輸出,也不需要修改應用程式或驅動程式以使用非標準除錯輸出API。


上圖顯示了Pascal Analyzer應用程式的一些示例除錯輸出

正如您在螢幕截圖中看到的那樣,訊息的字首是時間戳和程序ID。閱讀有關DebugView的更多資訊並在此處下載

https://www.cnblogs.com/xalion/p/9792021.html