* solib-frv.c (lm_base): Bail out if the main executable has
authorKevin Buettner <kevinb@redhat.com>
Fri, 27 Apr 2007 22:20:06 +0000 (22:20 +0000)
committerKevin Buettner <kevinb@redhat.com>
Fri, 27 Apr 2007 22:20:06 +0000 (22:20 +0000)
not been relocated.

gdb/ChangeLog
gdb/solib-frv.c

index 3d95b19..fc66469 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-27  Kevin Buettner  <kevinb@redhat.com>
+
+       * solib-frv.c (lm_base): Bail out if the main executable has
+       not been relocated.
+
 2007-04-27  Ulrich Weigand  <uweigand@de.ibm.com>
 
        * alpha-linux-tdep.c (alpha_linux_supply_fpregset): Correct location
index 5d2c9a1..f9f966d 100644 (file)
@@ -361,6 +361,14 @@ lm_base (void)
   CORE_ADDR addr;
   gdb_byte buf[FRV_PTR_SIZE];
 
+  /* One of our assumptions is that the main executable has been relocated.
+     Bail out if this has not happened.  (Note that post_create_inferior()
+     in infcmd.c will call solib_add prior to solib_create_inferior_hook().
+     If we allow this to happen, lm_base_cache will be initialized with
+     a bogus value.  */
+  if (main_executable_lm_info == 0)
+    return 0;
+
   /* If we already have a cached value, return it.  */
   if (lm_base_cache)
     return lm_base_cache;