CnDebugViewer Help

Welcome to use the log debugging tool "CnDebug/CnDebugViewer", which is developed by CnPack team. CnDebugViewer is an EXE tool running in Windows / x86 platform. It can be used to recieve, display and save/load the debug information output by CnDebug.pas. And it also can recieve Debug information from OutputDebugString API.

CnDebugViewer Introduction

CnDebugViewer can recieve the debug and timming information output from CnDebug.pas. Debug information is displayed in a tree in the main window. They can be filtered to display, and also can be saved to XML or JSON file and re-loaded. The snapshot of CnDebugViewer's main window is as below:

When CnDebugViewer starting up, a share memory map will be created and initilized to a queue for debug information retrieving. And a thread will be launched to read the information output from CnDebug. Information will also be put to different windows by the sender's process id. The switching tab over statusbar shows the sender's exe file name and the process id. Clicking the tab, you can switch to corresponding sender.

Debug information are displayed in the treeview in the middle of the window. Timing result is in right. The bottom panel shows the detailed information of selected item. Toolbar buttons has the same functions as the menu items. please reference below:

Menu: File

- New Window: Create a new, empty window. If a process output some debug information through CnDebug, it will be captured by this new, empty window if the read thread of CnDebugViewer is running.

- Open: Open and load a XML or JSON file or a CnDebug Dump file (*.cdd). It should be saved by CnDebugViewer before.

- Close Window: Close current window. No hint to save the message.

- Save: Save the debug messages in current window to XML or JSON file, inlucding debug information, bookmarks and timing results.

- Save MemDump: Save the binary MemDump message in current window to file if selected Message item type is MemDump.

- Export: Export the debug messages in current window to other file format, including TXT, CSV or HTM etc.

- Exit: Exit CnDebugViewer.

Menu: Edit

- Clear Display: Clear the debug information display.

- Clear Time: Clear the timing result display

- Copy: Copy the detailed information of selected item to clipboard.

- Toggle Bookmark: Toggle the bookmark status of selected item in debug information tree.

- Jump to Bookmakr: When any bookmark exists, this meunitem will show the bookmarks as its submenu item. Click to jump to the corresponding bookmark.

- Previous Bookmark: Jump to previous bookmark. If no previous bookmark, keep unmoved.

- Next Bookmark: Jump to next bookmark. If no next bookmark, keep unmoved, too.

- Clear Bookmarks: Delete all bookmarks in current window.

- Expand All: Expand the message tree.

- Find: A search dialog will popup when clicking this menu item. You can search text in the messages in current window.

- Find Next: Search the next text.

Menu: View

- Time: Show/Hide the timing result panel.

- Details: Show/Hide the detailed information area.

- Watch: Show Watch Window to display and refresh values from CnDebug.

- First: Jump to the first message in current window.

- Previous: Jump to the previous message of current selected one in current window.

- Next: Jump to the next message of current selected one in current window.

- Last: Jump to the last message in current window.

- Previous Separator: Jump to the previous separator in current window. If no, keep unmoved.

- Next Separator: Jump to the next separator in current window. If no, keep unmoved, too.

- Auto Scroll: Whether auto scroll to last message in display area.

Note: Separator is a type in CnDebug Unit. It can be sent using LogSeparator or TraceSeparator method of Cndebugger.

Menu: Control

- Start: Start the reading thread. CnDebugViewer starts it automatically.

- Pause: Pause the reading thread. The information message from CnDebug will stay in memory map queue.

- Stop: Stop the reading thread. The information message from CnDebug will stay in memory map queue, too.

Menu: Options

- General Options: Show the General Options dialog as below:

> - HotKey to Show: Specify a global Hotkey to show the main window of CnDebugViewer. Default is Ctrl+Alt+V。

> - Minimize when Startup: Whether minimize the main window when startup. Default is NOT.

> - Show Tray Icon: Whether show CnDebugViewer icon in system tray.

> - Minimize to Tray Icon: If show tray icon, this item is used to set whether to minimize CnDebugViewer to system tray without displaying a button in task bar.

> - Close to Tray Icon: If show tray icon and checked, CnDebug will minimize to system tray without displaying a button in task bar when Close button in main window clicked, otherwise exit normally.

> - Save Window State/Position: If checked, CnDebugViewer will save the window state and position when exiting, and restore it when next running.

> - Font: Change display font of messsage, details and timing area.

> - Capture "OutputDebugString" API: Whether capture the output of debug API OutputDebugString. Default is not. To make this change into effect, a restarting of CnDebugViewer needed.

> - Use Local Session Mode: If checked, CnDebugViewer will use "Local" objects to get the debug message instead of "Global". It depends on CnDebug.pas use Local mode or Global mode. Changes to this option will take effects after restarting CnDebugViewer.

> - Show All Processes Except in Black List: A Process Filter Option. If checked, CnDebugViewer will show messages from all processes except those in the black list. If black list is empty, show all processes.

> - Only Show Processes in White List: A Process Filter Option. If checked, CnDebugViewer will only show messages from the processes in the white list. If white list is empty, no processes will be shown.

> - OK: Save settings and close this dialog.

> - Cancel: Close this dialog and do nothing.

- Filter Options: Show the Sender Filter Options dialog to let user set the Sender Filter to CnDebug. Sender Filter can be used in CnDebug side to block unnecessary messages to be sent to CnDebugViewer's share memory map queue. The dialog is shown as below:

> - Enable Sender Filter: Check this box to enable Sender Filter conditions below.

> - Level: You can set the output message Level range.

> - Tag: You can set the output message's Tag. Empty means allow all tags.

> - Allowed Message Type: You can select the output message's type. Multi-selecting supported.

> - OK: Close this dialog and set the filter to CnDebug sender.

> - Cancel: Close this dialog and do nothing.

- Language: CnDebugViewer's user interface is designed to multi-language. You can choose supported language in this submenu item. Now Chinese Simplified, Chinese Traditional and English are supported.

Menu: Help

- Content: Show this help information.

- About: Show the About dialog

Display Filter

There's some filter control in the top of each window. They can be used to filter the display of messages. Note: Here the Filter is only about display, it's different with Sender Filter.

- Find Box: You can enter text and press Search Button or Enter to search the message tree in current window. The search history is stored in this combobox's dropdown list.

- Filter by Type: You can select the type of debug message for display. Only single selection supported now.

- Filter by Level: You can select the level range for display.

- Filter by Thread ID: You can select the thread ID that send the debug message, or select * to display all threads. All thread IDs output by CnDebug will be displayed in this combobox's dropdown list. Note: if Enter and Leave methods of Cndebugger are called in different threads. The indent may messed up when display all threads. This time you can select only one thread to restore the normal indent of the message tree.

- Filter by Tag: You can select the tag to display the message with certain tag, or select * to display all messages. All tags output by CnDebug will be displayed in this combobox's dropdown list.

Any questions or suggestions, please contact us: master@cnpack.org, We'll try our best to help you.

Links

CnDebug Help

CnPack IDE Wizards License

About CnPack

Copyrights 2001-2025 CnPack Team