gdb, hp ux: получение сообщения Не удалось найти виртуальную таблицу - объект еще не создан - PullRequest
0 голосов
/ 23 августа 2011

в HP UX 11.23 на ia64, при отладке определенного сегмента кода, я получаю эту ошибку при попытке доступа к определенному объекту.

Мне было интересно, сталкивался ли кто-нибудь с этим, и мог бы помочь мне разобратьсяэтого

(gdb) p *rsp
$8 = {<> = {Couldn't find virtual table -- object may not be constructed yet.
(gdb) p rrc
$9 = (class iface::rrc::MeasurementMessage *) 0x0
(gdb) l
417                                    iface::cpr::PositionResponse      &rspPtr,
418                                    bool                              &is3D)
419     {
420       iface::rrlp::PositionResponse       *rsp = lt.getRrlpResponse();
421       iface::rrc::MeasurementMessage      *rrc = lt.getRrc();
422       iface::lpp::PositionResponse        *lpp = lt.getLppResponse();
423       const iface::util::GadShape         *gad = 0;
424       iface::cpr::PositionRequest         &req = lt.getCprRequest();
425       const iface::is801::MsRspLocation  *cdma = lt.getMsRspLocation();
426
(gdb) bt
#0  eotd::fetchAndSetPosition (lt=@0xa76200, position=@0x65e2c640,
    rspPtr=@0x3be9660, is3D=@0x65e2c580)
    at /home/egpsbld/source/smlc47hpux/icursor/com/cps/eotd/utils.cpp:422
#1  0x200000007e7195b0:0 in eotd::P6Locator::compute (this=0x4076c0,
    lt=@0xa76200)

1 Ответ

1 голос
/ 23 августа 2011

Подобные проблемы часто возникают при отладке оптимизированного кода. Все локальные переменные испорчены оптимизатором. Конечно, полученное поведение будет таким же, но вы не увидите данных там, где и когда вы ожидаете.

Если это так, просто перекомпилируйте вашу программу с -O0

...