使用核心转储以特定索引打印矢量数据

时间:2019-06-01 07:16:16

标签: linux debugging gdb stdvector

我正在尝试使用gdb从核心文件中转储std :: vector。

想从特定索引处的向量打印数据,但无法在没有进程运行的情况下失败。

尝试了以下命令以转储向量并找出其类型:

(gdb) print vList
$2 = {<std::_Vector_val<ObjectA*, std::allocator<ObjectA*> >> = {<std::_Container_base> = {<No data fields>},
    _Alval = {<std::_Allocator_base<ObjectA*>> = {<No data fields>}, <No data fields>}}, _Myfirst = 0x499fb300, _Mylast = 0x499fb454, _Myend = 0x499fb478}

(gdb) print vList.size()
You can't do that without a process to debug.

(gdb) print *(vList._Myfirst)@mConnectionList.size()
You can't do that without a process to debug.

因为核心文件将具有完整的矢量数据,并且预期的输出将是将所有内容转储到矢量中。

相反,它说的是“没有调试过程就无法做到”

0 个答案:

没有答案