CnDebugViewer 使用說明

歡迎您使用 CnPack 開發組開發的 CnDebug/CnDebugViewer 日誌記錄型調試信息輸出查看工具。CnDebugViewer 是 Windows x86 平台下以獨立可執行文件方式提供給開發者使用的調試信息輸出接收查看工具，它用來接收並顯示 CnDebug.pas 輸出的內容，同時也有接收 OutputDebugString 輸出內容的功能。

CnDebugViewer 功能簡介

CnDebugViewer 主要用來接收 CnDebug.pas 輸出的調試信息和計時信息。調試信息在主窗口中以樹狀顯示，可方便地根據各種條件過濾顯示，也可保存成 XML 或 JSON 文件並再次載入。CnDebugViewer 的主界面如圖所示：

CnDebugViewer 啟動時會初始化一片共享內存區域並設置好隊列讀寫標記。然後 CnDebugViewer 啟動一讀取線程，專門負責讀取從 CnDebug 的輸出，並根據發送端的進程 ID 開啟不同的子窗口顯示。最下面狀態欄之上是進程標籤切換頁，頁標題顯示了輸出進程的文件名和進程 ID。點擊不同的標籤可切換到不同的進程輸出窗口。

中部的樹狀顯示區是用來顯示輸出信息條目，右邊的是計時結果顯示區，下方是詳細信息顯示區，用來顯示選中的調試信息的詳細內容。主窗口上部的工具欄是菜單項的快捷按鈕，在此不重複說明。

文件菜單

- 新建窗口：新建一空白窗口。如有新進程在通過 CnDebug 輸出調試信息並且 CnDebugViewer 讀取線程在運行，則此窗口將捕獲此進程的輸出信息。

- 打開：打開一 CnDebugViewer 保存成的 XML 或 JSON 記錄文件或 CnDebug 的輸出文件（擴展名 *.cdd）。

- 關閉當前窗口：關閉當前子窗口，子窗口的記錄不會提示保存。

- 保存記錄：將當前子窗口中的調試信息保存成 XML 或 JSON 文件，內容包括調試信息、書籤信息、計時結果等。

- 保存內存條目：如果當前子窗口中選中的調試信息是 MemDump 型，此處將該條目的內存 Dump 的內容保存成文件。

- 輸出：將當前子窗口中的調試信息輸出成其他格式的文件，包括 TXT/CSV/HTM 等。

- 退出：退出 CnDebugViewer。

編輯菜單

- 清空信息內容：清空輸出信息顯示區的所有信息。

- 清空計時內容：清空計時結果顯示區的所有信息。

- 複製：複製當前選中的輸出信息條目的詳細內容。

- 切換書籤：切換當前選中的輸出信息條目的書籤狀態，如果不是書籤則切換成書籤，否則取消書籤。

- 跳至書籤：當書籤存在時，此菜單項會顯示以書籤條目為內容的子菜單，點擊子菜單可跳至相應的書籤。

- 上一書籤：點擊此菜單項時，會跳至當前選中條目的上一個書籤處，如上面沒有書籤則不移動當前焦點。

- 下一書籤：點擊此菜單項時，會跳至當前選中條目的下一個書籤處，如下面沒有書籤則不移動當前焦點。

- 清除全部書籤：刪除當前顯示窗口中的全部書籤。

- 全部展開：當樹狀條目折疊時，點擊此菜單項可將其全部展開。

- 查找：點擊此菜單項會彈出查找對話框，供用戶在輸出內容中查找相應信息。

- 查找下一個：查找下一個待查的條目。

查看菜單

- 計時顯示：選擇此菜單項可確定是否顯示計時結果區。

- 詳細信息顯示：選擇此菜單項可確定是否顯示詳細信息顯示區。

- 顯示監視窗口：選擇此菜單項可顯示監視窗口，用來實時顯示 CnDebug 中輸出的監視信息。

- 到首條：當前焦點跳到輸出信息顯示區的第一條記錄。

- 上一條：當前焦點跳到輸出信息顯示區的當前選擇條目的上一條記錄。

- 下一條：當前焦點跳到輸出信息顯示區的當前選擇條目的下一條記錄。

- 到末尾：當前焦點跳到輸出信息顯示區的最後一條記錄。

- 前一分隔線：當前焦點跳到輸出信息顯示區的上一條分隔線，如果沒有則不動。

- 後一分隔線：當前焦點跳到輸出信息顯示區的下一條分隔線，如果沒有則不動。

- 自動滾動：顯示輸出的信息時是否自動滾動到最後一條。

（說明：分隔線是 CnDebug 單元中輸出的一條特殊信息，用來表示信息間的分隔，可用 LogSeparator 或 TraceSeparator 方法輸出。）

控制菜單

- 開始：開始讀取線程，默認時 CnDebugViewer 的讀取線程是自動啟動的。

- 暫停：暫停當前讀取線程的讀取，此時 CnDebug 的輸出內容會積累在共享內存隊列中。

- 停止：停止當前讀取線程的讀取，此時 CnDebug 的輸出內容頁也會積累在共享內存隊列中。

選項菜單

- 常規設置：顯示常規設置對話框。該對話框界面如圖：

> - 主窗體顯示熱鍵：設置顯示主窗體的全局熱鍵，默認為 Ctrl+Alt+V。

> - 啟動時最小化：設置是否啟動時最小化，默認為否。

> - 顯示系統托盤圖標：是否在系統托盤區顯示 CnDebugViewer 的圖標。

> - 最小化到系統托盤：在顯示系統托盤圖標的前提下，設置最小化 CnDebugViewer 時是否到系統托盤，而不在任務欄上顯示按鈕。

> - 關閉時最小化到系統托盤：在顯示系統托盤圖標的前提下，勾選此選項時，點擊關閉按鈕關閉 CnDebugViewer 時可最小化到系統托盤而不在任務欄上顯示按鈕，否則正常退出。

> - 保存窗口狀態及位置：退出時是否保存主窗口的狀態和位置，以備下次運行時恢復。

> - 字體：可改變消息輸出的顯示字體，包括列表區和計時區。

> - 捕獲 OutputDebugString 的輸出：是否同時捕捉系統調試 API OutputDebugString 的輸出，默認不捕捉。此選項的改動要生效需要重新啟動 CnDebugViewer。

> - 使用本地會話模式：選擇 CnDebugViewer 使用本地會話模式或全局會話模式，該模式需要和 CnDebug 中的模式對應才能保證收到消息。修改此選項後，需要重啟 CnDebugViewer 才能生效。

> - 顯示黑名單之外的進程：進程過濾功能開關，本選項勾選後，CnDebugViewer能接受並顯示所有進程，除了黑名單內的。

> - 只顯示白名單內的進程：進程過濾功能開關，本選項勾選後，CnDebugViewer只能接受並顯示白名單內的進程。

> - 確定：確認常規選項的修改並關閉此對話框。

> - 取消：關閉此對話框，不做任何修改。

- 過濾設置：顯示發送端過濾設置對話框，允許用戶啟用發送端過濾器。發送端過濾器不同於 CnDebugViewer 的顯示過濾功能。它作用於 CnDebug 端，能阻止不符合需要的輸出信息被輸入至共享內存隊列中。該對話框界面如圖：

> - 啟用發送端過濾機制：勾選此按鈕後可啟用發送端過濾機制，下部的條件設置使能。

> - Level：用戶可在此指定允許輸出的信息的 Level 範圍。

> - Tag：用戶可在此設定允許輸出的信息的 Tag，空表示允許所有 Tag，不支持通配符。

> - 允許輸出的信息類型：用戶可在此處勾選允許輸出的信息類型。

> - 確定：確認過濾器修改並關閉此對話框，過濾內容將作用於 CnDebug 端。

> - 取消：關閉此對話框，不做任何修改。

- Language：CnDebugViewer 的界面被設計為支持多種語言，目前支持簡體中文、繁體中文和英文，可在此菜單項下選擇界面語言。

幫助菜單

- 幫助：顯示此幫助信息。

- 關於：顯示作者和版權信息。

顯示過濾

子窗口上部是顯示信息查找和過濾區，它能根據用戶選擇的過濾條件調整顯示輸出。注意這裡的過濾和發送端過濾機制不同。

- 快捷查找框：此處可輸入字符串並點擊右邊的按鈕（或按回車）進行快捷查找，查找歷史記錄保留在下拉框中。

- 根據類型過濾：選擇需要顯示的信息的類型，目前只支持單選。

- 根據 Level 過濾：選擇需要顯示的信息的 Level 範圍。

- 根據線程 ID 過濾：選擇需要顯示輸出信息的線程 ID，或選擇 * 表示顯示所有線程。已經輸出過信息的線程 ID 會顯示在下拉框中。注意如果不同的線程中交錯調用了 Enter 和 Leave 系列函數，則可能在顯示全部線程時造成縮進錯亂的情況，此時選擇某一獨立線程即可恢復此線程的原始縮進顯示。

- 根據 Tag 過濾：選擇需要顯示的輸出信息的 Tag 值，或選擇 * 表示顯示所有的 Tag。已經輸出的 Tag 值會顯示在下拉框中。

您在使用中如果有任何的問題或建議，請與我們聯繫：master@cnpack.org，開發組將盡力為您提供幫助！

相關主題

CnDebug 使用說明

CnPack 許可協議

關於 CnPack

(C)版權所有 2001-2025 CnPack 開發組