GDB で std::vector の要素にアクセスして印刷するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-28 01:43:02
オリジナル
217 人が閲覧しました

How Can I Access and Print Elements of a std::vector in GDB?

GDB のベクター要素へのアクセス

C コードをデバッグするときは、データ構造の内容を調べることが重要です。 std::vector の場合、これは GDB で特に困難になる可能性があります。

ベクトル要素のアドレス指定

GCC 4.1.2 では、std:: の内部配列ベクトルには、ポインタを介してアクセスできます:

myVector._M_impl._M_start

ここで、myVector はベクトルの名前です。

Printing Vector Elements

std::vector の全体を出力するにはmyVector という名前で、次の GDB コマンドを実行します。

print *(myVector._M_impl._M_start)@myVector.size()
ログイン後にコピー

このコマンドは、ベクター内のすべての要素を出力します。最初の N 個の要素のみを出力するには、次を使用します。

print *(myVector._M_impl._M_start)@N
ログイン後にコピー

説明

アスタリスク (*) は、先頭を指す _M_start ポインターを逆参照するために使用されます。内部配列の。 @ 記号は、出力する要素の数を指定します。

このメソッドはバージョンに依存しており、コンパイラのバージョンによって異なる場合があります。

以上がGDB で std::vector の要素にアクセスして印刷するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!