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 开发组