all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: Dmitry Antipov <dmantipov@yandex.ru>
Cc: 12839@debbugs.gnu.org
Subject: bug#12839: 24.3.50; Emacs aborts in GC
Date: Fri, 09 Nov 2012 09:24:10 +0200	[thread overview]
Message-ID: <83vcdfz1b9.fsf@gnu.org> (raw)
In-Reply-To: <509C7B1A.2070009@yandex.ru>

> Date: Fri, 09 Nov 2012 07:40:10 +0400
> From: Dmitry Antipov <dmantipov@yandex.ru>
> CC: 12839@debbugs.gnu.org
> 
> Although I do my best to avoid platform-dependent tricks, some
> things are platform-dependent anyway, like the DEFUN macro. If you
> compile with Microsoft compiler, this is your case;

I'm using GCC, not the Microsoft compiler.  The MinGW development
environment uses ported GNU utilities (GCC, Binutils, GDB, etc.) to
compile native Windows programs.  (If I were using MSVC, I couldn't
have debugged programs with GDB, because GDB doesn't support the PDB
debug info format emitted by the Microsoft compiler.)

> can you use
> gdb to dump any struct Lisp_Subr to see it's vectorlike_header?

Is this what you wanted:

  (gdb) p Scons
  $6 = {
    header = {
      size = 1241513984
    },
    function = {
      a0 = 0x101a52e <Fcons>,
      a1 = 0x101a52e <Fcons>,
      a2 = 0x101a52e <Fcons>,
      a3 = 0x101a52e <Fcons>,
      a4 = 0x101a52e <Fcons>,
      a5 = 0x101a52e <Fcons>,
      a6 = 0x101a52e <Fcons>,
      a7 = 0x101a52e <Fcons>,
      a8 = 0x101a52e <Fcons>,
      aUNEVALLED = 0x101a52e <Fcons>,
      aMANY = 0x101a52e <Fcons>
    },
    min_args = 2,
    max_args = 2,
    symbol_name = 0x1543375 "cons",
    intspec = 0x0,
    doc = 0xfff9849c <Address 0xfff9849c out of bounds>
  }
  (gdb) p *(struct vectorlike_header *)&(Scons.header)
  $7 = {
    size = 1241513984
  }
  (gdb) p/x *(struct vectorlike_header *)&(Scons.header)
  $8 = {
    size = 0x4a000000
  }

> Also, if you suspect potentially bogus struct Lisp_Vector pointers,
> please try xvectype and xvecsize gdb commands to get something
> more informative than just the header->size shown as integer.

Sorry, I'm not sure I understand: in the first backtrace I've shown,
which was here (alloc.c:sweep_vectors):

	      else
		{
		  int tmp;
		  SETUP_ON_FREE_LIST (vector, total_bytes, tmp);  <<<<<<<
		}

the vector in question is not a Lisp object, it is a pointer to
'struct Lisp_Vector':

  #2  0x0101b1a8 in sweep_vectors () at alloc.c:2864
  2864                      SETUP_ON_FREE_LIST (vector, total_bytes, tmp);
  (gdb) p vector
  $1 = (struct Lisp_Vector *) 0x38ae230

Maybe you meant this:

  (gdb) p *vector
  $2 = {
    header = {
      size = 1166225408
    },
    contents = {55859226}
  }
  (gdb) p vector->contents
  $3 = {55859226}
  (gdb) p vector->contents[0]
  $4 = 55859226
  (gdb) xtype
  Lisp_Symbol
  (gdb) xsymbol
  $5 = (struct Lisp_Symbol *) 0x3545818
  "nil"

> >    emacs -Q
> >    C-x 3
> >    M-x set-variable RET auto-hscroll-mode RET nil RET
> 
> I can't reproduce it on Linux, so it looks like the same
> platform-dependent problem.

I'd be happy to try debugging this myself, but I need guidance
regarding some basics of what you changed recently in this area.
Alternatively, tell me what to do in GDB, and I will post the results.
I'm quite fluent with GDB, and reproducing this is extremely easy :-(.

TIA





  reply	other threads:[~2012-11-09  7:24 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-08 17:12 bug#12839: 24.3.50; Emacs aborts in GC Eli Zaretskii
2012-11-08 22:05 ` Eli Zaretskii
2012-11-09  3:40   ` Dmitry Antipov
2012-11-09  7:24     ` Eli Zaretskii [this message]
2012-11-09  8:56       ` Eli Zaretskii
2012-11-09 12:44       ` Dmitry Antipov
2012-11-09 14:47         ` Eli Zaretskii
2012-11-09 13:17       ` Dmitry Antipov
2012-11-09 13:27         ` Dmitry Antipov
2012-11-09 14:16         ` Eli Zaretskii
2012-11-09 14:46           ` Dmitry Antipov
2012-11-09 14:53             ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=83vcdfz1b9.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=12839@debbugs.gnu.org \
    --cc=dmantipov@yandex.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.