]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Use scoped_free_pendings in coff_symtab_read
authorTom Tromey <tom@tromey.com>
Fri, 29 Jun 2018 21:10:04 +0000 (15:10 -0600)
committerTom Tromey <tom@tromey.com>
Tue, 17 Jul 2018 15:37:57 +0000 (09:37 -0600)
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.

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

PR gdb/18624:
* coffread.c (coff_symtab_read): Use scoped_free_pendings.

gdb/ChangeLog
gdb/coffread.c

index 7b77e873c0fbadca33153a93e8d469abad6110ae..7388c7d63fcd7c3c2761a1ad2ef9cd7653debad8 100644 (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-11  Pedro Alves  <palves@redhat.com>
 
        PR gdb/23377
index 30583e1dda46fb6460ee54635b5de176d4aab33e..9e2edde19a889fec03522994e3f0c334f8618732 100644 (file)
@@ -803,6 +803,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