[devel] c++filt
Alexey Rusakov
=?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Чт Май 29 03:00:05 MSD 2008
В Пнд, 12/05/2008 в 19:49 +0400, Alexey Tourbin пишет:
> On Sun, May 11, 2008 at 01:15:09AM +0400, Dmitry V. Levin wrote:
> > On Sat, May 10, 2008 at 11:51:22PM +0700, Slava Semushin wrote:
> > > 10 мая 2008 г. 18:50 пользователь Alexey I. Froloff <raorn/altlinux.ru> написал:
> > > > * Dmitry V. Levin <ldv@> [080510 14:31]:
> > > >> > 1 NEW bad_elf_symbol added to the list
> > > >> > qdevelop /usr/bin/qdevelop U _ZN14QObjectPrivate15checkWindowRoleEv
> > > >> Пропал QObjectPrivate::checkWindowRole() после очередного обновления qt4?
> > > > А в плюсатых либах symbol versioning возможен? А в
> > > > нормальночитаемом виде?
> > >
> > > Про symbol versioning не скажу, а что до удобочитаемого вида, так
> > > можно использовать c++filt:
> > >
> > > [c0der на rock ~]$ echo '_ZN14QObjectPrivate15checkWindowRoleEv' | c++filt
> > > QObjectPrivate::checkWindowRole()
> > >
> > > Может это к роботу прикрутить?
> >
> > Пока binutils не обновлён до свежей версии, я бы не хотел, чтобы
> > c++filt использовался роботом по умолчанию (слишком дырявый).
>
> Кроме того, есть тонкости.
>
> $ c++filt _ZN12Fl_ScrollbarD0Ev
> Fl_Scrollbar::~Fl_Scrollbar()
> $ c++filt _ZN12Fl_ScrollbarD1Ev
> Fl_Scrollbar::~Fl_Scrollbar()
> $ c++filt _ZN12Fl_ScrollbarD2Ev
> Fl_Scrollbar::~Fl_Scrollbar()
> $
>
> Что это означает?
Если ещё актуально - в меру своих познаний в C++ подозреваю, что это три
деструктора с разным числом параметров, используемые в разных ситуациях:
например, при удалении одного объекта, при удалении массива объектов и
при удалении объекта, размещённого "по месту" (через конструкцию new ()
Object). Во всех случаях вызывается один и тот же код. Зачем так - не
знаю.
--
Alexey "Ktirf" Rusakov
GNOME Project
ALT Linux Team
Подробная информация о списке рассылки Devel