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.
next prev parent 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).