GDB のベクター要素へのアクセス
C コードをデバッグするときは、データ構造の内容を調べることが重要です。 std::vector の場合、これは GDB で特に困難になる可能性があります。
ベクトル要素のアドレス指定
GCC 4.1.2 では、std:: の内部配列ベクトルには、ポインタを介してアクセスできます:
myVector._M_impl._M_start
ここで、myVector はベクトルの名前です。
Printing Vector Elements
std::vector
print *(myVector._M_impl._M_start)@myVector.size()
このコマンドは、ベクター内のすべての要素を出力します。最初の N 個の要素のみを出力するには、次を使用します。
print *(myVector._M_impl._M_start)@N
説明
アスタリスク (*) は、先頭を指す _M_start ポインターを逆参照するために使用されます。内部配列の。 @ 記号は、出力する要素の数を指定します。
このメソッドはバージョンに依存しており、コンパイラのバージョンによって異なる場合があります。
以上がGDB で std::vector の要素にアクセスして印刷するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。