Re: Dispatch of GObject virtual functions in GtkMM



Oh, sorry; typographical errors didn't make my meaning very clear.

The test program which I attached earlier hangs forever on the
Window::add() call. When I take a look at the stacktrace in a
debugger, the results make no sense:

There's only one thread, and none of the frames in its stack are
resolvable to any known symbol. Not even the bottommost one, which
should be main().

This is the exact set of symptoms that showed up when I was debugging
the problem in glibmm which turned out to be caused by a wrong
C_GNUC_NORETURN annotation.

But none of the various overrides of Container::add() seems to put
that annotation on, so I'm out of obvious suspects to consider.

On 1/11/07, Murray Cumming <murrayc murrayc com> wrote:
On Wed, 2007-01-10 at 14:45 -0600, Matt Hoosier wrote:
> On 1/10/07, Murray Cumming <murrayc murrayc com> wrote:
> > On Wed, 2007-01-10 at 10:27 -0600, Matt Hoosier wrote:
> > > > You might also try compiling glibmm and gtkmm with disabled vfuncs
> > > and
> > > > disabled default signal handlers to see if this makes much
> > > difference.
> > > >
> > >
> > > If it turns out that this make a difference, would I be forgoing the
> > > ability to do useful overriding of things like expose-event handlers?
> >
> > You'd be forgoing the ability to do it easily. You'll always be able to
> > use the C API to do it the slightly harder way.
> >
> > You'll save some code size and memory too.
> >
> > I'll be interested in your results. If the vfuncs and default signal
> > handlers significantly slow anything down then I'd like to know why
> > and/or optimize the problem away.
>
> I'm having trouble executing the problem

Do you mean that the example doesn't work, or the example crashes, or
something else?

>  when linked against a version
> of {glib,gtk}mm with the default signal handlers removed. The call to
> Container::add() appears never to return, and the backtrace is trashed
> (every frame listed has '??' as its symbol name). These symptoms
> appear almost identical to the ones I got with G_GNUC_NORETURN bug in
> glibmm, but I don't find that annotation anywhere else in either the
> glibmm or gtkmm source trees.
>
> Any hints?

--
Murray Cumming
murrayc murrayc com
www.murrayc.com
www.openismus.com





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]