unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Eli Zaretskii <eliz@gnu.org>
To: "Simen Endsjø" <simendsjo@gmail.com>
Cc: 70914@debbugs.gnu.org, corwin@bru.st
Subject: bug#70914: 29.3; Crashes often on Windows
Date: Mon, 20 May 2024 16:47:39 +0300	[thread overview]
Message-ID: <86bk50a938.fsf@gnu.org> (raw)
In-Reply-To: <CAHkVV6FkfRQDXQqVLqR2x5geehpZG_Ni+Zd-6=wProqG_Hp_dQ@mail.gmail.com> (message from Simen Endsjø on Sun, 19 May 2024 20:38:24 +0200)

> From: Simen Endsjø <simendsjo@gmail.com>
> Date: Sun, 19 May 2024 20:38:24 +0200
> Cc: 70914@debbugs.gnu.org, corwin@bru.st
> 
> *****************************| System Information |*****************************

Thanks.  I think, given that every other avenue of approach has
failed, we should try the direct one: try to determine which code
called the zero PC address.  I think the following should work for
you, after Emacs crashes due to zero address:

  (gdb) thread 1
  (gdb) p/x *(uintptr_t *)$sp
  $1 = 0x1234567887654321
  (gdb) list *$

The "0x1234567887654321" stands for some 64-bit address that GDB will
show in your case, which is the address pointed by the stack pointer
register.  AFAIU, that address should hold the return address of the
function which called the "zero address", and the "list" command
should show its source code (assuming it's some Emacs code).

Please try this with a healthy Emacs process before you do it after
the crash, to make sure this procedure works.  Here's my attempt to
validate this technique:

  gdb ./emacs.exe
  ...
  (gdb) break Frecursive_edit
  Breakpoint 2 at 0x115dc2f: file emacs.c, line 2621.
  (gdb) run -Q
  Thread 1 hit Breakpoint 2, main (argc=2, argv=0x7ab2570) at emacs.c:2621
  2621      Frecursive_edit ();
  (gdb) si
  Frecursive_edit () at keyboard.c:808
  808     {
  (gdb) p/x *(uintptr_t *)$sp
  $4 = 0x76dc34
  (gdb) list *$
  0x76dc34 is in main (emacs.c:2622).
  2617    #endif
  2618
  2619      /* Enter editor command loop.  This never returns.  */
  2620      set_initial_minibuffer_mode ();
  2621      Frecursive_edit ();
  2622      eassume (false);
  2623    }
  2624    ^L
  2625    /* Sort the args so we can find the most important ones
  2626       at the beginning of argv.  */
  (gdb)

The above is in a 32-bit build of Emacs, not 64-bit build as in your
case.  The above tells us that Frecursive_edit was called from a line
before 2622 (since the return address on the stack is the address of
the first function _after_ Frecursive_edit).

Note that I used the "si" command (stepi) to step 1 machine
instruction inside Frecursive_edit and stop immediately after the
call, before the function's preamble pushes local variables onto the
stack, so as to ensure that the stack pointer points to the return
address.

I hope using this technique we will be able to find the immediate
caller of the "zero address".  Fingers crossed.





  reply	other threads:[~2024-05-20 13:47 UTC|newest]

Thread overview: 141+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-13  8:47 bug#70914: 29.3; Crashes often on Windows Simen Endsjø
2024-05-13 10:35 ` Eli Zaretskii
2024-05-14 10:14   ` Simen Endsjø
2024-05-14 11:23     ` Eli Zaretskii
2024-05-14 12:08       ` Simen Endsjø
2024-05-14 12:30         ` Eli Zaretskii
2024-05-14 13:58           ` Simen Endsjø
2024-05-14 14:18             ` Eli Zaretskii
2024-05-15 10:25               ` Simen Endsjø
2024-05-15 11:19                 ` Simen Endsjø
2024-05-15 11:24                   ` Simen Endsjø
2024-05-15 12:20                     ` Eli Zaretskii
2024-05-15 12:15                   ` Eli Zaretskii
2024-05-15 13:50                     ` Simen Endsjø
2024-05-15 12:04                 ` Eli Zaretskii
2024-05-15 13:45                   ` Simen Endsjø
2024-05-16  7:05           ` Simen Endsjø
2024-05-16 10:11             ` Eli Zaretskii
2024-05-24 10:13         ` Simen Endsjø
2024-05-15 10:53       ` Simen Endsjø
2024-05-15 12:11         ` Eli Zaretskii
2024-05-15 13:00           ` Simen Endsjø
2024-05-15 13:36             ` Simen Endsjø
2024-05-15 13:58               ` Simen Endsjø
2024-05-15 15:25               ` Eli Zaretskii
2024-05-15 18:13                 ` Simen Endsjø
2024-05-15 18:21                   ` Simen Endsjø
2024-05-15 18:53                     ` Eli Zaretskii
2024-05-15 20:03                       ` Simen Endsjø
2024-05-16  8:07                         ` Eli Zaretskii
2024-05-16 10:50                           ` Simen Endsjø
2024-05-16 11:44                             ` Simen Endsjø
2024-05-16 12:15                               ` Eli Zaretskii
2024-05-18 18:47                           ` Simen Endsjø
2024-05-18 19:46                             ` Eli Zaretskii
2024-05-18 21:45                               ` Simen Endsjø
2024-05-19  5:50                                 ` Eli Zaretskii
2024-05-19  9:03                                   ` Eli Zaretskii
2024-05-19 17:41                                     ` Simen Endsjø
2024-05-19 18:31                                       ` Eli Zaretskii
2024-05-19 18:38                                         ` Simen Endsjø
2024-05-20 13:47                                           ` Eli Zaretskii [this message]
2024-05-20 17:54                                             ` Simen Endsjø
2024-05-20 18:20                                               ` Eli Zaretskii
2024-05-20 18:41                                                 ` Simen Endsjø
2024-05-20 19:00                                                   ` Eli Zaretskii
2024-05-20 19:22                                                     ` Eli Zaretskii
2024-05-20 20:28                                                       ` Simen Endsjø
2024-05-21 14:06                                                         ` Eli Zaretskii
2024-05-21 17:39                                                           ` Simen Endsjø
2024-05-21 18:29                                                             ` Eli Zaretskii
2024-05-21 19:05                                                               ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-21 19:24                                                                 ` Eli Zaretskii
2024-05-21 20:31                                                                 ` Simen Endsjø
2024-05-22  4:32                                                                   ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22  4:35                                                                     ` Simen Endsjø
2024-05-22  5:08                                                                       ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22  5:57                                                                         ` Simen Endsjø
2024-05-22  6:12                                                                           ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22  8:16                                                                             ` Simen Endsjø
2024-05-22  8:23                                                                               ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22  8:41                                                                                 ` Simen Endsjø
2024-05-22  8:50                                                                                   ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22 11:09                                                                                     ` Simen Endsjø
2024-05-22 11:21                                                                                       ` Simen Endsjø
2024-05-22 11:24                                                                                         ` Simen Endsjø
2024-05-22 13:26                                                                                         ` Eli Zaretskii
2024-05-22 13:35                                                                                           ` Simen Endsjø
2024-05-22 14:07                                                                                             ` Eli Zaretskii
2024-05-22 11:40                                                                                     ` Eli Zaretskii
2024-05-22 11:36                                                                                   ` Eli Zaretskii
2024-05-22 11:24                                                                             ` Eli Zaretskii
2024-05-22 13:14                                                                               ` Simen Endsjø
2024-05-22 14:03                                                                                 ` Eli Zaretskii
2024-05-22 16:54                                                                                   ` Simen Endsjø
2024-05-22 18:19                                                                                     ` Eli Zaretskii
2024-05-22 19:21                                                                                       ` Simen Endsjø
2024-05-22 20:28                                                                                         ` Simen Endsjø
2024-05-23  5:19                                                                                           ` Eli Zaretskii
2024-05-23  7:31                                                                                             ` Simen Endsjø
2024-05-23  8:18                                                                                               ` Eli Zaretskii
2024-05-23 10:05                                                                                                 ` Simen Endsjø
2024-05-23 10:30                                                                                             ` Ihor Radchenko
2024-05-23 10:39                                                                                               ` Eli Zaretskii
2024-05-23 10:48                                                                                                 ` Ihor Radchenko
2024-05-23 11:31                                                                                                   ` Eli Zaretskii
2024-05-23 11:51                                                                                                     ` Ihor Radchenko
2024-05-23 13:33                                                                                                       ` Eli Zaretskii
2024-05-23 13:52                                                                                                         ` Ihor Radchenko
2024-05-23 14:05                                                                                                           ` Eli Zaretskii
2024-05-23 14:23                                                                                                             ` Ihor Radchenko
2024-05-23 16:02                                                                                                               ` Eli Zaretskii
2024-05-23 18:33                                                                                                                 ` Simen Endsjø
2024-05-23 18:46                                                                                                                   ` Eli Zaretskii
2024-05-22 12:26                                                                   ` Eli Zaretskii
2024-05-22 13:34                                                                     ` Simen Endsjø
2024-05-22 14:05                                                                       ` Eli Zaretskii
2024-05-22 14:28                                                                         ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22 14:58                                                                           ` Eli Zaretskii
2024-05-22 18:12                                                                             ` Hannes Domani via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-05-22 18:32                                                                               ` Eli Zaretskii
2024-05-21 20:01                                                               ` Simen Endsjø
2024-05-16  6:42                       ` Simen Endsjø
2024-05-16 10:03                         ` Eli Zaretskii
2024-05-16 11:00                           ` Simen Endsjø
2024-05-16 12:13                             ` Eli Zaretskii
2024-05-16 12:11                           ` Andrea Corallo
2024-05-16 12:22                             ` Eli Zaretskii
2024-05-16 15:26                               ` Andrea Corallo
2024-05-16 16:03                                 ` Eli Zaretskii
2024-05-16 17:04                                   ` Andrea Corallo
2024-05-16 18:24                                     ` Eli Zaretskii
2024-05-24  7:59                                 ` Andrea Corallo
2024-05-24 10:48                                   ` Eli Zaretskii
2024-05-27  9:53                                     ` Andrea Corallo
2024-05-27 11:55                                       ` Eli Zaretskii
2024-05-16 18:40                             ` Simen Endsjø
2024-05-16 19:28                               ` Eli Zaretskii
2024-05-16 20:13                                 ` Simen Endsjø
2024-05-16 21:03                                   ` Simen Endsjø
2024-05-17  6:51                                     ` Eli Zaretskii
2024-05-17 18:05                                       ` Simen Endsjø
2024-05-17 18:38                                         ` Eli Zaretskii
2024-05-17 20:39                                           ` Simen Endsjø
2024-05-18 11:18                                           ` Simen Endsjø
2024-05-18 11:49                                             ` Eli Zaretskii
2024-05-18 18:36                                               ` Simen Endsjø
2024-05-18 19:35                                                 ` Eli Zaretskii
2024-05-18 19:43                                                   ` Simen Endsjø
2024-05-18 11:55                                             ` Eli Zaretskii
2024-05-18 18:42                                               ` Simen Endsjø
2024-05-18 19:40                                                 ` Eli Zaretskii
2024-05-17  6:16                                   ` Eli Zaretskii
2024-05-15 18:35                   ` Eli Zaretskii
2024-05-15 15:18             ` Eli Zaretskii
2024-05-24 10:07       ` Simen Endsjø
2024-05-24 10:47         ` Eli Zaretskii
2024-05-24 13:08           ` Simen Endsjø
2024-05-27 12:54             ` Simen Endsjø
2024-05-27 13:22               ` Eli Zaretskii
     [not found]                 ` <87sey1g5dg.fsf@simendsjo.me>
2024-05-28 18:40                   ` 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=86bk50a938.fsf@gnu.org \
    --to=eliz@gnu.org \
    --cc=70914@debbugs.gnu.org \
    --cc=corwin@bru.st \
    --cc=simendsjo@gmail.com \
    /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).