Oracle® Solaris Studio 12.4 リリースの新機能

印刷ビューの終了

更新: 2014 年 12 月
 
 

Python によるプリティプリンティング

dbx には、Python でプリティプリンティングフィルタを作成できるメカニズムが用意されました。プリティプリンティングフィルタは、値を dbx で読み取り可能な形式に変換します。

dbx コマンド行では、printdisplay、および watch コマンドの –p オプションを使用するか、または dbxenv output_pretty_print on と入力して、プリティプリンティングを有効にすることができます。IDE および dbxtool では、dbxenv 変数 output_pretty_printon に設定すると、プリティプリンティングを有効にすることができ、「ウォッチ」および「変数」ウィンドウのコンテキストメニューで「清書印刷」チェックボックスを使用できます。

フィルタは、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
N/A
pair
N/A
vector
はい
list
はい
set
はい
deque
はい
bitset
はい
map
はい
stack
はい
priority_queue
はい
multimap
はい
multiset
はい
tuple (C++ のみ)
N/A
unique_ptr (C++ のみ)
N/A
使用例 5-1  フィルタ付きの pretty-print

次の出力は、dbxprint コマンドを使用したリストの出力の例です。

(dbx) print list10
list10 = {
   __buffer_size = 32U       
   __buffer_list = {
     __data_ = 0x654a8
   }
   __free_list   = (nil)
   __next_avail  = 0x67334
   __last     = 0x67448
   __node     = 0x48830
   __length   = 10U
   }

次は、dbx で出力された同じリストですが、pretty-print フィルタを使用しています。

(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 コマンドによるデバッグ のpretty-print の使用、および dbx のヘルプファイルのトピック prettyprint を参照してください。