Oracle® Solaris Studio 12.4: dbx コマンドによるデバッグ

印刷ビューの終了

更新: 2015 年 1 月
 
 

Python pretty-print フィルタ (Oracle Solaris)

pretty-print フィルタ機能を使用すると、ある形式の値を別の形式に変換できるフィルタを Python で作成できます。Python ベースのプリティプリンタは Oracle Solaris でのみ使用できます。


注 -  Python pretty-print フィルタは C および C++ コードでのみ使用でき、Fortran では使用できません。

フィルタは、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++ 標準テンプレートライブラリで使用できるクラスフィルタと、インデックスおよび断面を出力できるかどうかを示します。

クラス
インデックスと断面が使用可能
文字列
いいえ
vector
はい
list
はい
set
いいえ
使用例 8-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 での Python の使用

Python pretty-print フィルタと python コマンドは Oracle Solaris でのみ使用できます。組み込みの Python インタプリタを起動するには、python と入力します。Python コードを評価するには、python python-code と入力します。初期の Python プラグイン API を使用できます。ただし、その主な目的は、コールバックとして呼び出されるプリティプリンタフィルタを作成することです。したがって、python コマンドは主にテストと診断の目的に使用されます。

Python pretty-print API のドキュメント

Python pretty-print API ドキュメントを生成するには、python-docs コマンドを使用します。このコマンドは Oracle Solaris でのみ使用できます。