[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ncurses 20170401 (+) SEGV gdb 7.12.1 in TUI mode on MinGW-w64
From: |
Johann Klammer |
Subject: |
Re: ncurses 20170401 (+) SEGV gdb 7.12.1 in TUI mode on MinGW-w64 |
Date: |
Mon, 12 Jun 2017 11:40:11 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Icedove/24.5.0 |
On 06/12/2017 04:11 AM, Allen Hewes wrote:
> Hi,
>
> The ncurses 20170401 (onwards) release/snapshot causes SEGV in GDB 7.12.1 in
> TUI mode on MinGW-w64. I build my own MinGW-w64 toolchains. When I upgrade
> from 20170325, I get SEGVs from GDB in TUI mode:
>
> gdb --args gdbt --tui
> GNU gdb (GDB) 7.12.1
> Copyright (C) 2017 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html><http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-w64-mingw32".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/><http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/><http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from gdbt...done.
> (gdb) thread apply all bt full
> (gdb) run
> Starting program: C:\mingw64\bin\gdbt.exe --tui
> [New Thread 48316.0xb16c]
> [New Thread 48316.0x9cf8]
> [New Thread 48316.0xcc68]
> [New Thread 48316.0xd24c]
>
> Thread 1 received signal SIGSEGV, Segmentation fault.
> 0x00007ffcd179cdb8 in strncpy () from C:\WINDOWS\System32\msvcrt.dll
> (gdb) bt full
> #0 0x00007ffcd179cdb8 in strncpy () from C:\WINDOWS\System32\msvcrt.dll
> No symbol table info available.
> #1 0x0000000000742037 in set_curterm_sp (address@hidden, address@hidden)
> at ../../../../src/ncurses-6.0-20170401/ncurses/tinfo/lib_cur_term.c:110
> TCB = 0x169e7610
> oldterm = 0x0
> #2 0x00000000007436fe in _nc_setupterm_ex (address@hidden, tname=<optimized
> out>, address@hidden, Filedes=1,
> address@hidden, address@hidden) at
> ../../../../src/ncurses-6.0-20170401/ncurses/tinfo/lib_setup.c:777
> TCB = 0x169e7610
> termp = 0x169e7610
> code = 0
> #3 0x0000000000739ad1 in newterm_sp (sp=<optimized out>, address@hidden,
> address@hidden <msvcrt!_iob+48>,
> address@hidden <msvcrt!_iob>) at
> ../../../../src/ncurses-6.0-20170401/ncurses/base/lib_newterm.c:200
> errret = 0
> result = 0x0
> current = 0x0
> its_term = 0x0
> _ofp = 0x7ffcd17cf030 <msvcrt!_iob+48>
> _ifp = 0x7ffcd17cf000 <msvcrt!_iob>
> new_term = 0x169e7610
> #4 0x0000000000739eb3 in newterm (address@hidden, ofp=0x7ffcd17cf030
> <msvcrt!_iob+48>,
> address@hidden <msvcrt!_iob>) at
> ../../../../src/ncurses-6.0-20170401/ncurses/base/lib_newterm.c:352
> No locals.
> #5 0x0000000000476229 in tui_enable () at
> ../../../../src/gdb-7.12.1/gdb/tui/tui.c:425
> w = <optimized out>
> s = <optimized out>
> interp = <optimized out>
> #6 0x000000000046e8e3 in tui_resume (data=<optimized out>) at
> ../../../../src/gdb-7.12.1/gdb/tui/tui-interp.c:283
> ui = 0x12722810
> stream = 0x12722980
> #7 0x000000000054595a in interp_set (interp=0x1698a000, address@hidden)
> at ../../../../src/gdb-7.12.1/gdb/interps.c:253
> ui_interp = <optimized out>
> old_interp = 0x0
> first_time = 1
> buffer =
> "\005\000\000\000\000\000\000\000\020-r\022\000\000\000\000\000
> \230\026\000\000\000\000\177UT", '\000' <repeats 14 times>,
> "d|Ñü\177\000\000\002\000\000\000\000\000\201\001\000\000\000\000\000\000"
> __PRETTY_FUNCTION__ = "int interp_set(interp*, int)"
> #8 0x0000000000545b0b in set_top_level_interpreter (name=0x12722d10 "tui")
> at ../../../../src/gdb-7.12.1/gdb/interps.c:333
> interp = <optimized out>
> #9 0x0000000000546df0 in captured_main (address@hidden) at
> ../../../../src/gdb-7.12.1/gdb/main.c:968
> context = 0x1270fe20
> argc = <optimized out>
> argv = <optimized out>
> quiet = 0
> set_args = 0
> inhibit_home_gdbinit = 0
> symarg = 0x0
> execarg = 0x0
> pidarg = 0x0
> corearg = 0x0
> pid_or_core_arg = 0x0
> cdarg = 0x0
> ttyarg = 0x0
> print_help = 0
> print_version = 0
> print_configuration = 0
> cmdarg_vec = 0x0
> cmdarg_p = <optimized out>
> dirarg = 0x14e34ee0
> dirsize = <optimized out>
> ndir = 0
> system_gdbinit = 0x1690b070 "c:\\mingw64\\bin\\../etc/gdbinit"
> home_gdbinit = 0x0
> local_gdbinit = 0x0
> i = <optimized out>
> save_auto_load = 350439216
> objfile = <optimized out>
> pre_stat_chain = 0x981660 <sentinel_cleanup>
> #10 0x00000000005473b7 in gdb_main (address@hidden) at
> ../../../../src/gdb-7.12.1/gdb/main.c:1159
> No locals.
> #11 0x00000000004015e8 in main (argc=2, argv=0x14e34730) at
> ../../../../src/gdb-7.12.1/gdb/gdb.c:32
> args = {argc = 2, argv = 0x14e34730, interpreter_p = 0x92c030
> "console"}
>
> Using the ncurses 20170325 release GDB 7.12.1 TUI mode works fine.
>
> Toolchain I build ncurses with:
> mingw-w64 v5 (v5 branch)
> binutils 2.28
> gcc 6.3.1 (gcc-6-branch)
> libsystre 1.0.1
>
> I don't where / how to do more troubleshooting. Any ideas would be great.
>
(gdb) frame 1
list (or look at the line 110 in a text editor)
look how the strncpy is called
print the arguments
so if it's strncpy(a,b,c)
enter
(gdb) p a
(gdb) p b
(gdb) p c
Look for NULL values in pointer variables (here a and b)
or a missing string terminator.
see where it comes from.
ahead of the faulting line or
if necessary searching up the call chain.
(gdb) frame 2
(gdb) frame 3
etc...
> Thanks,
>
> /allen
>
>
> --
> Sent from
> Postbox<https://www.postbox-inc.com/?utm_source=email&utm_medium=siglink&utm_campaign=reach>
>
>
>
> _______________________________________________
> Bug-ncurses mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/bug-ncurses
>