Re: Readline on Windows (WAS: Re: [PATCH v2 0/2] MI: Add new command -complete]

Jan Vrany <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
On Mon, 2019-03-11 at 16:43 +0200, Eli Zaretskii wrote:
> > From: Jan Vrany <[email protected]>
> > Cc: [email protected], [email protected], [email protected]
> > Date: Mon, 11 Mar 2019 08:45:55 +0000
> > 
> > Ah, sorry, I should have been more clear. I meant that it does not work
> > for me EVEN when on standard console so I doubted it would work better over 
> > pipes much better.
> > 
> > All the problems I described do happen when using standard console and never
> > worked no matter which GDB I used (compiled by myself or by some third party).
> 
> That's strange.  Do you have some curses library installed, and if so,
> does it get linked into GDB?

No, this is the output of ldd:

      ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7fffba1c0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7fffb9520000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7fffb6630000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7fffb9770000)
        USER32.dll => /c/WINDOWS/System32/USER32.dll (0x7fffb95e0000)
        win32u.dll => /c/WINDOWS/System32/win32u.dll (0x7fffb7520000)
        GDI32.dll => /c/WINDOWS/System32/GDI32.dll (0x7fffb7d70000)
        gdi32full.dll => /c/WINDOWS/System32/gdi32full.dll (0x7fffb7280000)
        msvcp_win.dll => /c/WINDOWS/System32/msvcp_win.dll (0x7fffb6590000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7fffb7420000)
        WS2_32.dll => /c/WINDOWS/System32/WS2_32.dll (0x7fffb9a50000)
        RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7fffb77e0000)
        libgmp-10.dll => /mingw64/bin/libgmp-10.dll (0x6acc0000)
        libiconv-2.dll => /mingw64/bin/libiconv-2.dll (0x66000000)
        libintl-8.dll => /mingw64/bin/libintl-8.dll (0x61cc0000)
        ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7fffb7e70000)
        sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7fffb9460000)
        libexpat-1.dll => /mingw64/bin/libexpat-1.dll (0x68f40000)
        liblzma-5.dll => /mingw64/bin/liblzma-5.dll (0x63cc0000)
        libpython3.7m.dll => /mingw64/bin/libpython3.7m.dll (0x62300000)
        libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x64940000)
        VERSION.dll => /c/WINDOWS/SYSTEM32/VERSION.dll (0x7fffa9ac0000)
> 

> > > Do you perhaps have a ~/.inputrc file, or some other local
> > > customization, which might affect how Readline works? 
> > 
> > Not that I know of. There's no ".inputrc" nor "inputrc" on my Windows filesystem.
> > I believe GDB compiled by myself uses the readline that comes with GDB.
> 
> The .inputrc file doesn't come with Readline, it is a user init file
> that you yourself can create to customize how input through readline
> works.

I know. I just double checked that there is none accidentally created.

> 
> I compile GDB myself as well, also with its bundled readline, I use
> GDB in the Windows console all the time, and I have no problems like
> the ones you describe.  Very strange.

Strange indeed - but it is also good because this means that it "can". 

So I dug deeper and found --with-system-readline option (funny enough
configure --help does not mention it) and voila, with this config
it works well. This is ldd from "good" GDB: 

ntdll.dll => /c/WINDOWS/SYSTEM32/ntdll.dll (0x7fffba1c0000)
        KERNEL32.DLL => /c/WINDOWS/System32/KERNEL32.DLL (0x7fffb9520000)
        KERNELBASE.dll => /c/WINDOWS/System32/KERNELBASE.dll (0x7fffb6630000)
        msvcrt.dll => /c/WINDOWS/System32/msvcrt.dll (0x7fffb9770000)
        USER32.dll => /c/WINDOWS/System32/USER32.dll (0x7fffb95e0000)
        win32u.dll => /c/WINDOWS/System32/win32u.dll (0x7fffb7520000)
        GDI32.dll => /c/WINDOWS/System32/GDI32.dll (0x7fffb7d70000)
        gdi32full.dll => /c/WINDOWS/System32/gdi32full.dll (0x7fffb7280000)
        msvcp_win.dll => /c/WINDOWS/System32/msvcp_win.dll (0x7fffb6590000)
        ucrtbase.dll => /c/WINDOWS/System32/ucrtbase.dll (0x7fffb7420000)
        WS2_32.dll => /c/WINDOWS/System32/WS2_32.dll (0x7fffb9a50000)
        RPCRT4.dll => /c/WINDOWS/System32/RPCRT4.dll (0x7fffb77e0000)
        libgmp-10.dll => /mingw64/bin/libgmp-10.dll (0x6acc0000)
        libexpat-1.dll => /mingw64/bin/libexpat-1.dll (0x68f40000)
        libiconv-2.dll => /mingw64/bin/libiconv-2.dll (0x66000000)
        libintl-8.dll => /mingw64/bin/libintl-8.dll (0x61cc0000)
        ADVAPI32.dll => /c/WINDOWS/System32/ADVAPI32.dll (0x7fffb7e70000)
        sechost.dll => /c/WINDOWS/System32/sechost.dll (0x7fffb9460000)
        liblzma-5.dll => /mingw64/bin/liblzma-5.dll (0x63cc0000)
        libreadline7.dll => /mingw64/bin/libreadline7.dll (0x6e780000)
        libwinpthread-1.dll => /mingw64/bin/libwinpthread-1.dll (0x64940000)
        libpython3.7m.dll => /mingw64/bin/libpython3.7m.dll (0x62300000)
        VERSION.dll => /c/WINDOWS/SYSTEM32/VERSION.dll (0x7fffa9ac0000)
        libtermcap-0.dll => /mingw64/bin/libtermcap-0.dll (0x6ac40000)

One problem less. Not that it explains why bundled readline
does not work for me and does for you, but at least I can produce more usable 
gdb on Windows. Thanks a lot! 

Jan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.