2012-05-01 5 views
3

gdbの中に私のプログラム(死後)のコアダンプをデバッグしています。私はそれを開いた: gdb [プログラム名] [コア名]GDB C++ - コアダンプを見たときのSTLコンテナの検査?

しかし、私はSTLベクトルを検査しようとすると、 印刷vec->サイズ() または プリントvec->(0)

で私は

を "あなたがデバッグするプロセスなしにそれを行うことはできません"

エラーが出ます

私はこれらの容器の内容とサイズを調べようとしています。コアダンプgdb検査にダミープロセスを付加する方法はありますか?

+2

gdbのどのバージョンをお使いですか?バージョンに応じて、メモリを処理して人間が判読できるコンテナのプレゼンテーションを生成するSTLかなりのプリンタを検索することができます。 http://sourceware.org/gdb/wiki/STLSupport –

+2

致命的なデバッグ時には実行できない関数を呼び出そうとしています。代わりにベクトルメモリを調べてください。 – Benj

答えて

2

印刷ベクトル:次に

(gdb) print *vec 

実装のベクトルの内部を理解し、生のバッファを印刷します。しばしば "_M_buffer"などと呼ばれます。あなたのやり方によっては、バッファが内部にある内部オブジェクトがあるかもしれません。

関連する問題