2011-08-12 13 views
4

私はその下にddd 3.3.11とgdb 6.5-8.fc6rhを使用しています。私のコンパイラはg ++ 4.1.1です。ネストされた標準ライブラリデータの検査

私はstlマップコンテナを持っています。これはキーの参照としてintの(ベクトル)のベクトルを含んでいます。キーのデータはMyType*です。

私はDan Marinescuの書いた.gdbinitファイルを使用しています。あなたのC++標準ライブラリコンテナをネストするまで、素晴らしい動作をします。

私の質問は、.gdbinitファイルに例示されているような検査技術を使用して、 はネストされたstdlibデータを検査する手段ですか?

私が実行している主な問題は、.gdbinitファイルが型キャストしようとしたときのようです。私のマップは

map<vector<int>, MyType*> 

次に型の場合

は、GDBに、私はこれが

elem[0].left: No symbol "vector<int>" in current context. 

それがどのような構文であると失敗するような

pmap myMap vector<int> MyType* 

のpmapの呼び出しを試してみてくださいgdbではいくつかのデータをテンプレート型に型変換する必要がありますか?

答えて

4

もっと最近のgdbを使って、一重引用符を追加するだけでなく、名前空間とアロケータを追加する必要がありました。

(gdb) pmap myMap 'std::vector<int,std::allocator<int>>' MyType* 
elem[0].left: $3 = std::vector of length 1, capacity 1 = {2} 
elem[0].right: $4 = (MyType *) 0x7fffffffe060 
Map size = 1 
関連する問題