From 9cc8966527dbd97792d9ff46398f7a15853ad6fc Mon Sep 17 00:00:00 2001 From: Michael Snyder Date: Sat, 5 Mar 2011 00:52:41 +0000 Subject: [PATCH] 2011-03-04 Michael Snyder * symfile.c (simple_overlay_update): Check for null return value from lookup_minimal_symbol. --- gdb/ChangeLog | 3 +++ gdb/symfile.c | 27 ++++++++++++++++++--------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 043be2e..949fcd2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2011-03-04 Michael Snyder + * symfile.c (simple_overlay_update): Check for null return value + from lookup_minimal_symbol. + * gdbserver/server.c (queue_stop_reply): Call xmalloc not malloc. * xml-syscall.c (syscall_start_syscall): Assert name is non null. diff --git a/gdb/symfile.c b/gdb/symfile.c index 4e0d287..de0b369 100644 --- a/gdb/symfile.c +++ b/gdb/symfile.c @@ -3432,15 +3432,24 @@ simple_overlay_update (struct obj_section *osect) if (osect) /* Have we got a cached copy of the target's overlay table? */ if (cache_ovly_table != NULL) - /* Does its cached location match what's currently in the symtab? */ - if (cache_ovly_table_base == - SYMBOL_VALUE_ADDRESS (lookup_minimal_symbol ("_ovly_table", - NULL, NULL))) - /* Then go ahead and try to look up this single section in the - cache. */ - if (simple_overlay_update_1 (osect)) - /* Found it! We're done. */ - return; + { + /* Does its cached location match what's currently in the + symtab? */ + struct minimal_symbol *minsym + = lookup_minimal_symbol ("_ovly_table", NULL, NULL); + + if (minsym == NULL) + error (_("Error reading inferior's overlay table: couldn't " + "find `_ovly_table' array\n" + "in inferior. Use `overlay manual' mode.")); + + if (cache_ovly_table_base == SYMBOL_VALUE_ADDRESS (minsym)) + /* Then go ahead and try to look up this single section in + the cache. */ + if (simple_overlay_update_1 (osect)) + /* Found it! We're done. */ + return; + } /* Cached table no good: need to read the entire table anew. Or else we want all the sections, in which case it's actually -- 2.7.4