以下に示すコマンドは、テンプレートおよびインスタンス化されたテンプレートに使用します。クラスまたは型定義がわかったら、値の出力、ソースリストの表示、またはブレークポイントの設定を行うことができます。
whereis は、関数テンプレートまたはクラステンプレートの、インスタンス化された関数やクラスの出現すべてのリストを出力するために使用します。
(dbx) whereis Array クラステンプレートのインスタンス: 'Array<int> クラステンプレートのインスタンス: 'Array<double> クラステンプレート: `sample`sample.cc`Array
(dbx) whereis square 関数テンプレート: `sample`square
関数テンプレートおよびクラステンプレートと、インスタンス化された関数やクラスの定義を出力するために使用します。
(dbx) whatis Array template<class T> class Array ; 完全なテンプレート宣言を得るために次を実行してください: 'whatis -t Array<int>';
(dbx) whatis square template<class C> void square(C num, C *result);
クラステンプレートのインスタンス化の場合は、次のように入力します。
(dbx) whatis -t Array<int>
class Array<int> {
public:
int Array<int>::getlength();
int &Array<int>::operator[](int i);
Array<int>::Array<int>(int l);
Array<int>::‾Array<int>();
private:
int length;
int *array;
};
テンプレートクラスのすべてのメンバー関数を停止するには、次のように入力します。
(dbx)stop inclass Array (2) stop inclass Array
stop inclass を使用して、特定のテンプレートクラスのメンバー関数すべてにブレークポイントを設定します。
(dbx) stop inclass Array<int> (2) stop inclass Array<int>
stop in を使用して、あるテンプレートクラスのメンバー関数、またはテンプレート関数にブレークポイントを設定します。
インスタンス化されたクラステンプレートの場合は、次のように入力します。
(dbx) stop in Array<int>::Array<int>(int l) (2) stop in Array<int>::Array<int>(int)
call は、スコープ内で停止した場合に、インスタンス化された関数またはクラステンプレートメンバー関数を明示的に呼び出すために使用します。dbx が正しいインスタンスを選択できない場合は、メニューを使用して正しいインスタンスを選択できます。
(dbx) call square(j,i)
print を使用して、インスタンス化された関数またはクラステンプレートメンバー関数を評価します。
(dbx) print iarray.getlength() iarray.getlength() = 5
(dbx) whatis this
class Array<int> *this;
(dbx) print *this
*this = {
length = 5
array = 0x21608
}
list を使用して、指定のインスタンス化された関数のソースリストを出力します。
(dbx) list square(int, int*)