Subject: bug#1077: bug#670: bug#1077: 23.0.60; x-create-frame: (wrong-type-argument number-or-marker-p nil)

From: Eli Zaretskii <[email-masked]>
Date: Sun, 28 Nov 2010 21:54:14 +0200

> From: "Drew Adams" <[email-masked]>
> Cc: <[email-masked]>
> Date: Sun, 28 Nov 2010 10:42:50 -0800
> 
> I have 7zip, and that worked.  I put the binaries in my PATH.  Next time I get a
> crash I should be able to use GDB, I guess.

It's a good idea to download the file src/.gdbinit as well, and have
it handy.  You should start GDB in the directory where you keep
.gdbinit, so that GDB will automatically read it at startup.  That
file has many useful commands that make debugging Emacs and printing
the various objects and data structures much easier.  Let me know if
you want me to send you that file, in case you have difficulties
getting it from the repository.

> > > Then why doesn't the Lisp debugger have a stack frame for 
> > > the Lisp function that called `<'?  I assume you're saying that
> > > C calls some Lisp function _besides_ the Lisp function `<'.
> > > Why doesn't that function appear in the backtrace?
> > 
> > Lisp debugger has no visibility into the C level.
> 
> I understand that.  But I'm not clear on how the backtrace stack is constructed.
> If the error occurs in `<' (Lisp), then shouldn't Lisp know what the _Lisp_
> caller of Lisp `<' was?  (You've already mentioned, I think, that C doesn't
> return control to Lisp `<' directly.)

By now you will have seen my initial analysis of the problem, so you
know the reason: `<' was called directly from C, via the `eval'
primitive, when the code which builds the menu bar evaluated the
properties of the menu items.  IOW, I was mistaken, it's not called by
some other Lisp.

> But `C-M-down' is _not_ bound to `down-list' in the minibuffer completion maps
> in Icicle mode.  If you are really in Icicle mode, then `C-M-down' is bound (by
> default) to `icicle-next-candidate-per-mode-help' in the minibuffer completion
> maps.  If it is bound to that command, then you should be able to see the
> backtrace I reported when you hit `C-M-down'.

Maybe the reason is that I typed `ESC C-down', not C-M-down.  I don't
think it's important at this time, since C-M-End reproduces the
problem.