Cygwin installer hangs when running post-install scripts
Corinna Vinschen
corinna-cygwin@cygwin.com
Wed Feb 14 13:30:32 GMT 2024
On Feb 14 10:52, Corinna Vinschen via Cygwin wrote:
> On Feb 13 15:48, Kevin Ushey via Cygwin wrote:
> > Here's a bit more information from a debug build of cygwin; here I'm
> > just trying to launch cygpath.exe:
> >
> > (gdb) f 1
> > #1 0x00007ffa0123ba1f in find_fast_cwd_pointer () at
> > ../../../../winsup/cygwin/path.cc:4526
> > 4526 const uint8_t *lock = (const uint8_t *)
> >
> > (gdb) bt
> > #0 memmem (haystack=<optimized out>, hs_len=<optimized out>,
> > needle=0x7ffa0142e531 <_C_collate_locale+59857>, ne_len=4) at
> > ../../../newlib/libc/string/memmem.c:161
> > #1 0x00007ffa0123ba1f in find_fast_cwd_pointer () at
> > ../../../../winsup/cygwin/path.cc:4526
> > [...]
>
> Ok, so we know now which memmem call fails, so the next question is,
> why? The haystack address is unfortunately still optimized out in
> memmem, so it looks like the newlib subdir is still optimized.
> But it's pretty certainly a wrong haystack address. This address has
> been fetched from
>
> const uint8_t *rcall = (const uint8_t *) memchr (get_dir, 0xe8, 80);
> ...
> const uint8_t *use_cwd = rcall + 5 + peek32 (rcall + 1);
>
> Chances are high, that the call instruction found by rcall is bogus.
Can you run this in GDB? I'd love to see the assembler code starting at
address `get_dir'...
Corinna
More information about the Cygwin
mailing list