dbx には、Python でプリティプリンティングフィルタを作成できるメカニズムが用意されました。プリティプリンティングフィルタは、値を dbx で読み取り可能な形式に変換します。
dbx コマンド行では、print、display、および watch コマンドの –p オプションを使用するか、または dbxenv output_pretty_print on と入力して、プリティプリンティングを有効にすることができます。IDE および dbxtool では、dbxenv 変数 output_pretty_print を on に設定すると、プリティプリンティングを有効にすることができ、「ウォッチ」および「変数」ウィンドウのコンテキストメニューで「清書印刷」チェックボックスを使用できます。
フィルタは、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 で出力された同じリストですが、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 を参照してください。