[Lsb-infrastructure] libchk script bug?

Denis Silakov silakov at ispras.ru
Fri Nov 16 03:03:14 PST 2007


Bug 1775 (http://bugs.linuxbase.org/show_bug.cgi?id=1775) contains sql
which will fill in ClassInfo.CIbase field; the emptiness of this field
for some classes is the reason why Navigator doesn't show base class.

However, this field doesn't participate in *_vtable_name_* arrays
creation, for those arrays only Vtable information makes sense.
Navigator shows that vtable information is ok, in our example all 12
functions are there.

Unfortunately, generated sources for libchk are not updated in the bzr
at the moment, so I can't check what's being generated there.

The thing is that libchk is generated successfully here, and the array
you mentioned contains all 12 functions.

Try to regenerate libchk sources (mkfunclist -v 3.2), and if the things
still go wrong please send us generated libQtCore_so_4.c and
libQtCore_so_4.txt files.

Jeff Licquia wrote:
> In the (new?) Qt 4 data, we have QFileSystemWatcher:
> sls
> http://www.linux-foundation.org/navigator/browse/class_single.php?cmd=list-by-name&Cname=QFileSystemWatcher&CIid=2402
>
>
> Note that the number of functions is 12, which matches with the
> Content section of the page.
>
> Here's the equivalent in libchk:
>
> struct classvtable _18QFileSystemWatcher_of_libQtCore_so_4_vtable [1] = {
>         {
>         0,
>         0,
>         1,      /* Vtable category */
>         12,     /* Number of Vfuncs */
>         "_ZTI18QFileSystemWatcher",
>         _18QFileSystemWatcher_of_libQtCore_so_4_vtable_name_0,
>         },
> };
>
> Good so far.  But what does the vtable actually look like?
>
> const char *_18QFileSystemWatcher_of_libQtCore_so_4_vtable_name_0 [] = {
>         "_ZN7QObject5eventEP6QEvent",
>         "_ZN7QObject11eventFilterEPS_P6QEvent",
>         "_ZN7QObject10timerEventEP11QTimerEvent",
>         "_ZN7QObject10childEventEP11QChildEvent",
>         "_ZN7QObject11customEventEP6QEvent",
>         "_ZN7QObject13connectNotifyEPKc",
>         "_ZN7QObject16disconnectNotifyEPKc",
>         };
>
> Oops!  We're missing five functions!  This, by the way, will cause
> libchk to segfault once it iterates up to the 9th (nonexistent)
> virtual function.
>
> Moreover, the missing functions are all defined in QFileSystemWatcher,
> while the ones that show up are QObject virtual functions.
>
> It might also be of note that no base class shows up in the Navigator,
> though obviously QFileSystemWatcher has to derive from QObject to get
> virtual functions from it.

-- 
Regards,
Denis.



More information about the lsb-infrastructure mailing list