[sisyphus] C++ & gdb

Alexey Morozov =?iso-8859-1?q?morozov_=CE=C1_novosoft=2Eru?=
Пн Сен 23 10:50:32 MSD 2002


On Mon, Sep 23, 2002 at 09:11:52AM +0300, Sanja Byelkin wrote:
> > Скажите, а кто чем отлаживает программы на C++? gdb, по-моему,
> > достаточно ущербный в этом плане. Во всяком случае, с задачей показа
> > содержимого объектов сложных классов он практически не справляется.
> > У меня тут библиотечка, написанная в ATL'ном стиле, показ любого
> > сколько-нибудь сложного объекта кончается примерно так:
> > 
> > (gdb) display p
> > 1: p = {<raw_packet_ptr<server::dgram::packet>> = {
> >     p = 0x80688d8}, <No data fields>}
> > gdb) display p.p
> > 2: p.p = (packet *) 0x80688d8
> > (gdb) display *p.p
> > 3: *p.p = Value can't be converted to integer.
> > Disabling display 3 to avoid infinite recursion.
> > (gdb) _
> > Хотя ptype на *p.p вполне себе работает.
> > Это как-нибудь лечится или таки в морг. А если в морг - то чем ведущие
> > собаководы пользуются для подобных целей? А то ведь рядом сидит дружок
> > на MSVC6 - и вовсю все эти структуры данных просматривает и прочее...
> > Прям хоть на винде сервер разрабатывай...
> Я ddd использую - это как-бы графическая надстройка над gdb (и еще
> некоторыми редакторами) - смотрит все (при помощи того-же gdb, но как - я 
> не знаю).
Да ddd-то ничем не поможет в моем случае. Команда graph display <smth>
ничем не лучше display <smth>, то есть, как не работало, так и не
работает. Собственно, изначально я ddd и пускал...

> У меня с местным gdb другие проблемы - отладка в multithread. Временно
> полечилось нестатической линковкой но (наверно после очередного обновления)
> опять поплохело. Но я твердо увекрен что 1) проблема местная 2) частые
> обновления оказалось тоже зло :)  3) прийдется что-то менять.
Поищите в инете "Smart GDB". Правда, сдается мне, проект сдох года два
как... Но вдруг...




Подробная информация о списке рассылки Sisyphus