dbx 现在具有一种机制,从而可以在 Python 中编写美化输出过滤器。美化输出过滤器将值转化为 dbx 中的更可读形式。
在 dbx 命令行上,可以通过使用 print 的 –p 选项、display 和 watch 命令或通过键入 dbxenv output_pretty_print on 来启用美化输出。在 IDE 和 dbxtool 中,可以通过将 dbxenv 变量 output_pretty_print 设置为 on 来启用美化输出并且可以使用 "Watches"(监视)和 "Variables"(变量)窗口的上下文菜单中的 "Pretty Print"(美化输出)复选框。
系统已内置过滤器,用于在 C++ 标准模板库的 4 种实现中选择类。下表指定了库名和该库的编译器选项:
|
下表指定哪些类过滤器可在 C++ 标准模板库中使用,以及是否可输出索引和分片:
|
以下是一个在 dbx 中使用 print 命令时输出列表的输出示例:
(dbx) print list10 list10 = { __buffer_size = 32U __buffer_list = { __data_ = 0x654a8 } __free_list = (nil) __next_avail = 0x67334 __last = 0x67448 __node = 0x48830 __length = 10U }
以下是与 dbx 中输出的列表相同的列表,但该列表使用的是美化输出过滤器:
(dbx) print -p list10 list10 = (200, 201, 202, 203, 204, 205, 206, 207, 208, 209) (dbx) print -p list10[5] list10[5] = 205 (dbx) print -p list10[1..100:2] list10[1..100:2] = [1] = 202 [3] = 204 [5] = 206 [7] = 208
有关美化输出和调用样式的美化输出器的一般信息,请参见Oracle Solaris Studio 12.4:使用 dbx 调试程序 中的使用美化输出和 dbx 帮助文件中的主题 prettyprint。