Use scoped_free_pendings in coff_symtab_read

PR gdb/18624 concerns an assertion failure that occurs when setting a
breakpoint in a Go program on Windows.

What happens here is that coff_symtab_read uses buildsym but does not
instantiate scoped_free_pendings.  So, the struct pending objects are
never released.  Later, dwarf2read.c calls buildsym_init, which
asserts.

This patch fixes the problem by instantiating scoped_free_pendings in
coff_symtab_read.

Tested using the test executable from the PR.  I don't know how to
test this more fully.

gdb/ChangeLog
2018-07-17  Tom Tromey  <tom@tromey.com>

	PR gdb/18624:
	* coffread.c (coff_symtab_read): Use scoped_free_pendings.
This commit is contained in:
Tom Tromey 2018-06-29 15:10:04 -06:00
parent 0909f342a2
commit 4735f0edf4
2 changed files with 8 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2018-07-17 Tom Tromey <tom@tromey.com>
PR gdb/18624:
* coffread.c (coff_symtab_read): Use scoped_free_pendings.
2018-07-16 Jim Wilson <jimw@sifive.com>
* riscv-tdep.c (riscv_gdbarch_init): Call gdbarch_init_osabi.

View File

@ -804,6 +804,9 @@ coff_symtab_read (minimal_symbol_reader &reader,
CORE_ADDR tmpaddr;
struct minimal_symbol *msym;
buildsym_init ();
scoped_free_pendings free_pending;
/* Work around a stdio bug in SunOS4.1.1 (this makes me nervous....
it's hard to know I've really worked around it. The fix should
be harmless, anyway). The symptom of the bug is that the first