我有一个核心转储,我正在用gdb查看核心转储。
我想知道是否有一种方法可以在gdb中检查boost::any value的值?
在核心中,我有一个用于增强any的地址,所以我尝试将其转换为占位符,看看是否可以检查该值,但我失败了。我知道boost 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
}
在这件事上的任何帮助都是非常感谢的。谢谢!
发布于 2013-02-18 10:08:44
boost::any
有一个内部类placeholder
,用于保存数据内容。尝试使用:
(gdb) print (*((boost::any::holder<unsigned long>*)((anyInstance).content))).held
https://stackoverflow.com/questions/13885978
复制相似问题