[GRASS-dev] debugging nviz with TclTk 8.5 aqua

Glynn Clements glynn at gclements.plus.com
Tue Jul 22 21:29:16 EDT 2008


Michael Barton wrote:

> >> (gdb) print ((MacDrawable *) (window))
> >> No symbol "MacDrawable" in current context.
> >
> > Hmm; does this work:
> >
> > 	print ((struct TkWindowPrivate *) (window))
> > 	print ((struct TkWindowPrivate *) (window))->toplevel
> > 	print ((struct TkWindowPrivate *) (window))->toplevel->grafPtr
> > ?
> >
> > Failing that, just:
> >
> > 	print window
> >
> > might provide a clue.
> >
> > OTOH, I'm not sure if any of this will actually help in the end. The
> > conclusion may well just be "Togl doesn't work with 8.5". I can't see
> > any references to 8.5 on the Togl site (it isn't a particularly active
> > project).
> 
> This actually produced some results.

> (gdb) print ((struct TkWindowPrivate *) (window))
> $1 = (struct TkWindowPrivate *) 0x1d7c648
> (gdb) print ((struct TkWindowPrivate *) (window))->toplevel
> $2 = (struct TkWindowPrivate *) 0x28

Ouch.

Do you have more than one version of Tcl/Tk on your system? One
possibility is that the tkMacOSXInt.h header which Togl is using
doesn't match the library.

Another possibility is that the structure packing could be affected by
compiler switches, so if Togl isn't compiled with the same switches as
the Tk library, it won't be accessing the fields correctly.

Can you try:

	print *((struct TkWindowPrivate *) (window))

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list