Oracle® Solaris Studio 12.4 新增功能

退出打印视图

更新时间: 2014 年 12 月
 
 

使用 Python 的美化输出

dbx 现在具有一种机制,从而可以在 Python 中编写美化输出过滤器。美化输出过滤器将值转化为 dbx 中的更可读形式。

dbx 命令行上,可以通过使用 print–p 选项、displaywatch 命令或通过键入 dbxenv output_pretty_print on 来启用美化输出。在 IDE 和 dbxtool 中,可以通过将 dbxenv 变量 output_pretty_print 设置为 on 来启用美化输出并且可以使用 "Watches"(监视)和 "Variables"(变量)窗口的上下文菜单中的 "Pretty Print"(美化输出)复选框。

系统已内置过滤器,用于在 C++ 标准模板库的 4 种实现中选择类。下表指定了库名和该库的编译器选项:

库的编译器选项
库名称
–library=Cstd(缺省值)
libCstd.so.1
–library=stlport4
libstlport.so.1
–library=stdcxx4
libstdcxx4.so.4.**
–library=stdcpp(使用 –std=c++11 选项时的缺省值)
libstdc++.so.6.*

下表指定哪些类过滤器可在 C++ 标准模板库中使用,以及是否可输出索引和分片:

索引和分片可用
string
不适用
pair
不适用
vector
list
set
deque
bitset
map
stack
priority_queue
multimap
multiset
tuple(仅 C++)
不适用
unique_ptr(仅 C++)
不适用
示例 5-1  使用过滤器的美化输出

以下是一个在 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