7

コア ダンプがあり、gdb でコア ダンプを見ています。

ブーストの値を調べることができる方法があるかどうか疑問に思っていました::gdbの任意の値?

コアにはブースト any へのアドレスがあったので、プレースホルダーにキャストして値を調べてみたのですが、足りませんでした。ブースト any のタイプが unsigned long であることはわかっているので、タイプを知っている any 値を表示する方法はありますか?

(gdb) print ('boost::any::placeholder')(*(('boost::any'*)0x00007f263fa27730).content)
warning: can't find linker symbol for virtual table for `boost::any::placeholder' value
warning:   found `boost::any::holder<bool>::~holder()' instead
$129 = warning: can't find linker symbol for virtual table for `boost::any::placeholder' value
warning:   found `boost::any::holder<bool>::~holder()' instead
warning: can't find linker symbol for virtual table for `boost::any::placeholder' value
warning:   found `boost::any::holder<bool>::~holder()' instead
{
  _vptr.placeholder = 0x7f2a9a662560
}

この問題について何か助けていただければ幸いです。ありがとう!

4

1 に答える 1

1

boost::anyplaceholderデータコンテンツを保持する内部クラスがあります。使用してみてください:

(gdb) print (*((boost::any::holder<unsigned long>*)((anyInstance).content))).held
于 2013-02-18T02:08:43.677 に答える