> Date: Thu, 21 Aug 2014 09:58:33 -0400 > From: Ken Brown > CC: Eli Zaretskii > > Thanks for the report. The abort comes from here (in buffer.c): > > for (tail = current_buffer->overlays_before; tail; tail = tail->next) > { > ptrdiff_t startpos, endpos; > > XSETMISC (overlay, tail); > > start = OVERLAY_START (overlay); > end = OVERLAY_END (overlay); > endpos = OVERLAY_POSITION (end); <<<<<<<<<<<<<<<<<<<<< > > where OVERLAY_POSITION is defined as follows in buffer.h: > > #define OVERLAY_POSITION(P) \ > (MARKERP (P) ? marker_position (P) : (emacs_abort (), 0)) > > I'm not at all familiar with the code in this area, but I'm copying Eli > in the hopes that he can see something in this backtrace. I don't know > if this will turn out to be another one of those backtraces that don't > make sense.
Next time it happens, it would be good to know what kind of Lisp object is 'end'. Like this: (gdb) p end (gdb) xtype To have the xtype command, you need to source the .gdbinit file that comes with Emacs. Also, the above assumes that you are in the right stack call frame, i.e. in the frame that called emacs_abort. In the backtrace shown in the message I'm replying to, that is frame #2, so the command is (gdb) frame 2 If "xtype" says it's a symbol, follow with "xymbol", which will show what symbol is that. There are other x* commands to display other Lisp objects. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple