unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: Build hangs in lisp/gnus.
Date: Sat, 4 Apr 2015 19:11:53 +0000	[thread overview]
Message-ID: <20150404191153.GF4362@acm.fritz.box> (raw)
In-Reply-To: <83lhi7omra.fsf@gnu.org>

Hello, Eli.

On Sat, Apr 04, 2015 at 07:56:41PM +0300, Eli Zaretskii wrote:
> > Date: Sat, 4 Apr 2015 16:42:15 +0000
> > Cc: emacs-devel@gnu.org
> > From: Alan Mackenzie <acm@muc.de>

> > > Type "finish" repeatedly s long as it displays the call-stack frames,
> > > then tell here which frame was the last you saw, before it stopped
> > > showing frames.

> > I typed "finish" just once, and the looping build process resumed with
> > the message:

> > Run till exit from #4  0x00000000005f5e5d in Ffuncall (nargs=3, args=0x7fff0f1dc3a8) at eval.c:2721

> > .  Does that give any useful information?

> Yes, it now becomes important to understand what was that frame
> doing.  Can you reproduce the same hang and backtrace at will?  If so,
> after you attach GDB, and assuming the frame that calls Ffuncall is
> again frame #4, type these commands:

>  (gdb) frame 4
>  (gdb) p args[0]
>  (gdb) xtype
>  (gdb) p args[1]
>  (gdb) xtype
>  (gdb) p args[2]
>  (gdb) xtype

> For each Lisp type that "xtype" reports, there's a corresponding
> command to display the Lisp object in human-readable form: "xsymbol"
> for a symbol, "xstring" for a string, "xvectorr" for a vector, etc.
> So after each "xtype" command invoke the corresponding command to
> display the object, and let's take it from there.

OK.

args[0] is a symbol, "macroexpand".
args[1] is a cons; xlist gives: 

warning: Couldn't restore frame #3 in current thread.  Bottom (innermost)
frame selected:
#0  0x000000000054f442 in make_lisp_symbol (sym=0x5f0714
<backtrace_next+36>) at lisp.h:1068
1068      Lisp_Object a = XIL (TAG_SYMOFFSET ((char *) sym - (char *)
lispsym));
$38 = 0xf7640
Lisp_Symbol
$39 = (struct Lisp_Symbol *) 0xd6baf0
"caddr"
---
$40 = 0xcba0
Lisp_Symbol
$41 = (struct Lisp_Symbol *) 0xc81050
"x"
---
nil

, which to me looks like the list "(caddr x)".

args[2] is a symbol, "nil".

This looks very promising.  I have been messing around with "caddr",
etc., for a few weeks now, and it could well be that a change I've made
isn't as inconsequential as I thought.  In particular, I don't really
understand the form "(declare (compiler-macro cl--compiler-macro-cXXr))"
near the start of the caddr function.

Thanks for all the help!

-- 
Alan Mackenzie (Nuremberg, Germany).



  reply	other threads:[~2015-04-04 19:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-04 14:16 Build hangs in lisp/gnus Alan Mackenzie
2015-04-04 14:32 ` Eli Zaretskii
2015-04-04 15:35   ` Alan Mackenzie
2015-04-04 15:43     ` Eli Zaretskii
2015-04-04 16:42       ` Alan Mackenzie
2015-04-04 16:56         ` Eli Zaretskii
2015-04-04 19:11           ` Alan Mackenzie [this message]
2015-04-05 10:54           ` Alan Mackenzie
2015-04-05 17:22             ` 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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to=20150404191153.GF4362@acm.fritz.box \
    --to=acm@muc.de \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).