ho un core dump e mi sto guardando il core dump con gdb.Come posso vedere un valore di boost :: qualsiasi se conosco il tipo con gdb
Mi chiedevo se c'è un modo per essere in grado di esaminare il valore di una spinta: qualsiasi valore in gdb?
Nel core, ho avuto l'indirizzo di boost any e quindi ho provato a trasmetterlo a un segnaposto per vedere se potevo esaminare il valore, ma mi è venuto meno. So che il tipo di boost any è unsigned long quindi c'è un modo per visualizzare qualsiasi valore conoscendo il tipo?
(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
}
Qualsiasi aiuto con questo argomento sarebbe molto apprezzato. Grazie!
Hai guardato l'aumento di qualsiasi fonte? Un impulso qualsiasi contiene un puntatore ad un titolare, il cui tipo bambino è basato su modelli dal tipo tenuto, se non ricordo male. L'aumento di se stesso non è un tipo dinamico, possiede un tipo dinamico. – Yakk
Mi chiedo se si possa scrivere una stampante gdb pretty per 'boost :: any'. Dopotutto, non è nemmeno necessario conoscere il tipo di contenuto, dal momento che il puntatore 'vtable' del tipo tenuto sa quale sia il tipo di contenuto. Abbiamo bisogno di più stampanti gdb pretty! – enobayram