Description
[Issue migrated from SourceForge | ID: 3478895 | Submitted by 'lijon']
[http://sourceforge.net/support/tracker.php?aid=3478895]
To reproduce:
GUI.cocoa; Window().front;
// and then press the escape key
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000018bd2580
sendMessage (g=0x118c90240, selector=0x18bd2568, numArgsPushed=1) at PyrMessage.cpp:207
207index = slotRawInt(&classobj->classIndex) + selector->u.index;
(gdb) bt
#0 sendMessage (g=0x118c90240, selector=0x18bd2568, numArgsPushed=1) at PyrMessage.cpp:207
#1 0x0000000100065c68 in initInterpreter (g=0x10033bb40, selector=0x18bd2568, numArgsPushed=1) at PyrInterpreter3.cpp:409
#2 0x00007fff87a5dafa in -NSApplication sendEvent:
#3 0x00007fff879f46de in -NSApplication run
#4 0x0000000102743174 in QEventDispatcherMac::processEvents ()
#5 0x0000000103658a34 in QEventLoop::processEvents ()
#6 0x0000000103658d54 in QEventLoop::exec ()
#7 0x000000010365a37c in QCoreApplication::exec ()
#8 0x0000000100008ab4 in start ()
(gdb) list
202recvrSlot = g->sp - numArgsPushed + 1;
203
204classobj = classOfSlot(recvrSlot);
205
206lookup_again:
207index = slotRawInt(&classobj->classIndex) + selector->u.index;
208meth = gRowTable[index];
209
210if (slotRawSymbol(&meth->name) != selector) {
211doesNotUnderstand(g, selector, numArgsPushed);
// the memory seems corrupted:
(gdb) print classobj
Unable to access variable "classobj"
$1 =
(gdb) print *classobj
Unable to access variable "classobj"
$2 =
(gdb) print recvrSlot
Unable to access variable "recvrSlot"
$3 =
(gdb) print g->sp
$4 = (PyrSlot *) 0x0
(gdb) print numArgsPushed
$5 = 1
(gdb) print g
$6 = (VMGlobals *) 0x118c90240
(gdb) print index
Unable to access variable "index"
$7 =
(gdb) print selector
$8 = (PyrSymbol *) 0x18bd2568
(gdb) print *selector
Cannot access memory at address 0x18bd2568
(gdb)