bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#49864: 28.0.50; Fails to start after "make install"


From: Eli Zaretskii
Subject: bug#49864: 28.0.50; Fails to start after "make install"
Date: Thu, 05 Aug 2021 10:58:56 +0300

> From: Wilhelm Kirschbaum <wkirschbaum@gmail.com>
> Date: Thu, 5 Aug 2021 09:14:10 +0200
> Cc: 49864@debbugs.gnu.org
> 
> Yes, of course, but I will only be able to do it a bit later today. I am not 
> too familiar with GDB though. 

Thanks.  The instructions are below:

  $ cd /home/wilhelm/src/tools/emacs/src
  $ gdb /usr/local/bin/emacs-28.0.50
  ...
  (gdb) source ./.gdbinit
  (gdb) break pdumper.c:5315
  (gdb) r -Q

When GDB announces that the breakpoint at pdumper.c:5315 breaks, do
this:

  (gdb) p cu_file1
  (gdb) xstring
  (gdb) p cu_file2
  (gdb) xstring

and show the results of these commands.  Then step through the code,
one line at a time, with the "n" ("next") command.  Eventually, you
should get to line 5321:

  5321                if (file_access_p (fndata, F_OK))

Then show the value of fndata, which should be a file name:

  (gdb) p fndata

Type "next" again.  If the file_access_p call fails (returns 'false'),
show the value of errno immediately after stepping past the line that
calls file_access_p:

  (gdb) p errno

In that case (if file_access_p fails), the "next" command will land
you in this block:

            else
              {
                eln_fname = make_uninit_string (execdir_len + fn2_len);
                fndata = SSDATA (eln_fname);
                memcpy (fndata, emacs_execdir, execdir_len);
                memcpy (fndata + execdir_len, SSDATA (cu_file2), fn2_len);
                installation_state = LOCAL_BUILD;
              }

Please type "n" ("next") repeatedly until you get to the last line,
which starts with "installation_state =", and show the value of
fndata:

  (gdb) p fndata

Finally, keep stepping with "n" until you come to this line:

        comp_u->handle = dynlib_open (SSDATA (eln_fname));

and type the following commands:

  (gdb) p eln_fname
  (gdb) xstring

and show their results.

You can then terminate the GDB session:

  (gdb) q

(Answer "y" if it asks whether to quit.)

I hope the data you collect and report will explain what happens, or
at least give us a direction in which to look for the explanation.

Thanks again for your help in this matter.





reply via email to

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