> In GNU Emacs 27.0.90 (build 1, i686-apple-darwin10.0.0, NS appkit-1561.61 Version 10.13.6 (Build 17G11023)) "i686"? Are you building a 32-bit executable? If so, does the problem go away if you build the more-typical 64-bit executable? What compiler and version are you using? And what GDB version are you using? > (gdb) p args[0] > $25 = XIL(0x3960) > (gdb) xtype > Lisp_Symbol > (gdb) xsymbol > $26 = (struct Lisp_Symbol *) 0x3af8 > Cannot access memory at address 0x3b00 Something's wrong here. xsymbol should have output something like: $8 = (struct Lisp_Symbol *) 0x10515f0 Try this instead (my examples show output on my Ubuntu 18.04 x86-64 platform): (gdb) p args[0] $25 = XIL(0x3960) (gdb) xgetsym $25 (gdb) p $ptr $27 = (struct Lisp_Symbol *) 0x10515f0 I assume yours will output something like "$27 = (struct Lisp_Symbol *) 0x3af8" instead. If so, try this: (gdb) xgetptr $25 (gdb) p/x $ptr $28 = 0x3960 Assuming you get that, try this: (gdb) p ((struct Lisp_Symbol *) ((char *)lispsym + 0x3960)) $29 = (struct Lisp_Symbol *) 0x10515f0 I assume yours will output something like "$29 = (struct Lisp_Symbol *) 0x3af8" instead. If so, please try this: (gdb) p (char *)lispsym $30 = 0x104dc90 "\230\001" (gdb) p (char *)&lispsym[0] $31 = 0x104dc90 "\230\001" My *guess* is that the above two lines will differ due either to a bug in your compiler or in your debugger. Your $30 will equal 408. If I'm right, the attached patch should work around your compiler/debugger bug. Of course this will merely help you debug Emacs; it won't fix the original bug you reported. So if this fixes your problem please redo the backtrace info Eli asked for.