[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