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

変数、メンバー、関数の定義を調べる

識別子の宣言を出力するには、次のように入力します。


(dbx) whatis identifier

識別名は、必要に応じてファイルおよび関数情報によって修飾します。

C++ プログラムについては whatis identifier 関数テンプレート例示をリストします。テンプレート定義は、whatis -t identifier を付けて表示されます。「型およびクラスの定義を調べる」を参照してください。

Java プログラムについては、whatis identifier は、クラスの宣言、現在のクラスのメソッド、現在のフレームの局所変数、または現在のクラスのフィールドをリストします。

メンバー関数を出力するには、次のように入力します。


(dbx) whatis block::draw
void block::draw(unsigned long pw);
(dbx) whatis table::draw
void table::draw(unsigned long pw);
(dbx) whatis block::pos
class point *block::pos();
(dbx) whatis table::pos
class point *block::pos();
:

データメンバーを出力するには、次のように入力します。


(dbx) whatis block::movable
int movable;

変数を指定すると、whatis コマンドによってその変数の型が示されます。


(dbx) whatis the_table
class table *the_table;
.

フィールドを指定すると、whatis コマンドによってそのフィールドの型が示されます。


(dbx) whatis the_table->draw
void table::draw(unsigned long pw);

メンバー関数で停止したときは、this ポインタを調べることができます。


(dbx) stop in brick::draw
(dbx) cont
(dbx) where 1
brick::draw(this = 0x48870, pw = 374752), line 124 in
     "block_draw.cc"
(dbx) whatis this
class brick *this;