Avoid internal errors when stepping outside 'main' on MinGW
authorEli Zaretskii <eliz@gnu.org>
Fri, 28 Dec 2018 07:02:04 +0000 (09:02 +0200)
committerEli Zaretskii <eliz@gnu.org>
Fri, 28 Dec 2018 07:02:04 +0000 (09:02 +0200)
commit156f23669270533e1499e15e49842468800c2681
treec775c014b25c7797af20bd73d73a2dac7d567d7c
parent0e41bebb938dbe9eae7063f5321429194bfc5ab7
Avoid internal errors when stepping outside 'main' on MinGW

When one steps with "next" past the 'main's 'return' statement
in MinGW programs built by mingw.org's tools, PC lands in a
function whose symbol is not in any symtab.  GDB then looks
up the nearest symbol, and should find none, because all those
with addresses below PC are not real functions.  Having
unresolved symbols, whose address is zero, in minsyms tricked
GDB into using these bogus symbols, which then caused
assertion violation and internal_error.  See the discussion at
https://sourceware.org/ml/gdb-patches/2018-12/msg00176.html
for more details.

gdb/ChangeLog
2018-12-28  Eli Zaretskii  <eliz@gnu.org>

* coffread.c (coff_symtab_read): Don't record in minsyms symbols
that are unresolved.  This avoids triggering an internal error
when stepping outside of 'main' in MinGW programs.
gdb/ChangeLog
gdb/coffread.c