Subject: Re: bug#5973: Crash in get_next_display_element

From: Eli Zaretskii <[email-masked]>
Date: Tue, 20 Apr 2010 13:21:21 +0300

> From: Juanma Barranquero <[email-masked]>
> Date: Tue, 20 Apr 2010 00:46:32 +0200
> Cc: David Reitter <[email-masked]>, [email-masked]
> 
> #1  0x012be7c9 in temp_set_point_both (buffer=0x34b6e00, charpos=32,
> bytepos=33) at intervals.c:1944

This frame calls `abort' here:

  /* In a single-byte buffer, the two positions must be equal.  */
  if (BUF_ZV (buffer) == BUF_ZV_BYTE (buffer)
      && charpos != bytepos)
    abort ();

It does that on the assumption that if the character and byte
positions of the last character in the buffer's accessible area
coincide, all the character and byte positions before that must also
coincide.

So please show what the following GDB commands print in frame #1:

  (gdb) p buffer->size
  (gdb) p *buffer->text->beg@34
  (gdb) p buffer->text->zv
  (gdb) p buffer->text->zv_byte
  (gdb) p buffer->text->z
  (gdb) p buffer->text->z_byte
  (gdb) p buffer->text->pt
  (gdb) p buffer->text->pt_byte
  (gdb) p buffer->name
  (gdb) xstring

TIA