On Jul 22, 2008, at 6:29 PM, Glynn Clements wrote:


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))

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x0000002c
0x0001702d in Togl_CreateWindow (tkwin=0x5cf0608, parent=97384328, instanceData=0x757dc0) at togl.c:2338
2338            if (!aglSetDrawable(togl->aglCtx,
(gdb) print *((struct TkWindowPrivate *) (window))
$1 = {
  winPtr = 0x5cf0608,
  grafPtr = 0x0,
  context = 0x6c63542f,
  rootControl = 0x0,
  xOff = 0,
  yOff = 7337416,
  size = {
    width = 1.02819154e-38,
    height = 0
  },
  visRgn = 0x936b48,
  aboveVisRgn = 0x0,
  drawRect = {
    origin = {
      x = 6.97764217e+22,
      y = 1.8089652e+25
    },
    size = {
      width = 1.41764467e+22,
      height = 1.63008877e-19
    }
  },
  referenceCount = -271777041,
  toplevel = 0x28,
  flags = 97452040
}
(gdb)

Mac OS X 10.5 comes with TclTk aqua 8.4 and 8.5. But I also have to install an x11 version that I compile (in /usr/local/tcltk) in order to compile and run GRASS with the standard x11 tcltk.

Michael


_______________________________________________
grass-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to