emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Unexec dumping results in "Segmentation fault" on Windows Msys2


From: Eli Zaretskii
Subject: Re: Unexec dumping results in "Segmentation fault" on Windows Msys2
Date: Thu, 15 Apr 2021 19:08:09 +0300

> From: Nikolay Kudryavtsev <nikolay.kudryavtsev@gmail.com>
> Cc: emacs-devel@gnu.org
> Date: Thu, 15 Apr 2021 18:47:31 +0300
> 
> Binutils triggered segfault:
> 
> $ temacs.exe -Q
> Warning: Lisp directory 
> 'd:/Emacs/configurations/msys2-brake-test/src/lisp': No such file or 
> directory
> Cannot open load file: No such file or directory, loadup.el

Does the directory d:/Emacs/configurations/msys2-brake-test/src/lisp
exist?  If so, please try running temacs.exe from cmd.exe, not from
MSYS2 Bash.  If that fails with the same error message, then please
step into the call to file_accessible_directory_p in this function
(from lread.c):

  static void
  load_path_check (Lisp_Object lpath)
  {
    Lisp_Object path_tail;

    /* The only elements that might not exist are those from
       PATH_LOADSEARCH, EMACSLOADPATH.  Anything else is only added if
       it exists.  */
    for (path_tail = lpath; !NILP (path_tail); path_tail = XCDR (path_tail))
      {
        Lisp_Object dirfile;
        dirfile = Fcar (path_tail);
        if (STRINGP (dirfile))
          {
            dirfile = Fdirectory_file_name (dirfile);
            if (! file_accessible_directory_p (dirfile)) <<<<<<<<<<<<<<<<<
              dir_warning ("Lisp directory", XCAR (path_tail));
          }
      }
  }

and see why it fails, including the code in w32_accessible_directory_p
that it calls.

> (gdb) p &stack_bottom_variable
> $1 = (void **) 0xbd3cbff6c8

Nothing wrong with that.  And what do these produce:

  (gdb) p current_thread
  (gdb) p current_thread->m_stack_bottom

> I went for bisecting hoping to find that simple localized change. It was 
> not my intention to tease you, at least not since the second letter. ;-) 
> I can grab as many full backtraces or do other tests as needed. It's 
> just that the GDB session looked completely fine to me in my admittedly 
> limited understanding of low level Emacs internals. The crash happens 
> when bootstrap-emacs is doing dumping(same place as the other problem). 
> Here's a couple backtraces:
> 
> https://gist.githubusercontent.com/sg2002/32ea64634a89e7b407f50e29b4ab5f7e/raw/aa0bcc517e1a4de733a9dc2678f8c45daefb95f9/gistfile1.txt
> 
> https://gist.githubusercontent.com/sg2002/d9cfaf1268973b20d66d79f5df575498/raw/06091019c1d30b863e6000fb642e09316d82a344/gistfile1.txt

These look like some kind of infinite recursion that causes stack
overflow.  So the final segfault is not interesting; what's
interesting is why there's infinite recursion.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]