Fix bugs related to inferior function calls on FRV using the FDPIC ABI.
authorKevin Buettner <kevinb@redhat.com>
Fri, 29 Apr 2005 21:48:28 +0000 (21:48 +0000)
committerKevin Buettner <kevinb@redhat.com>
Fri, 29 Apr 2005 21:48:28 +0000 (21:48 +0000)
gdb/ChangeLog
gdb/frv-tdep.c
gdb/solib-frv.c

index 0759dc74a93a6c212b78ee8243901c6a30fc2ffa..40ed55257221403a56d2f42b68daf216b7bd6c9a 100644 (file)
@@ -1,3 +1,10 @@
+2005-04-29  Kevin Buettner  <kevinb@redhat.com>
+
+       * frv-tdep.c (find_func_descr): Verify that entry point can be
+       found in symbol table prior to looking up its function descriptor.
+       * solib-frv.c (find_canonical_descriptor_in_load_object): Add
+       test for non-NULL link map.
+
 2005-04-29  Corinna Vinschen  <vinschen@redhat.com>
 
        * MAINTAINERS: Revert h8300 state to un-deleted.
index 20b4427c9c3c2552c39a78cb69b68b85393fe546..e597037b9122c5088464185f10fe2f1595da528b 100644 (file)
@@ -1079,6 +1079,13 @@ find_func_descr (struct gdbarch *gdbarch, CORE_ADDR entry_point)
 {
   CORE_ADDR descr;
   char valbuf[4];
+  CORE_ADDR start_addr;
+
+  /* If we can't find the function in the symbol table, then we assume
+     that the function address is already in descriptor form.  */
+  if (!find_pc_partial_function (entry_point, NULL, &start_addr, NULL)
+      || entry_point != start_addr)
+    return entry_point;
 
   descr = frv_fdpic_find_canonical_descriptor (entry_point);
 
index ecc791a33799fa649d3b19968423eb22812e7ccd..4647b955c5e18101dd21c57bd396f111882d7864 100644 (file)
@@ -1109,6 +1109,10 @@ find_canonical_descriptor_in_load_object
   if (abfd == 0)
     return 0;
 
+  /* Nothing to do if no link map.  */
+  if (lm == 0)
+    return 0;
+
   /* We want to scan the dynamic relocs for R_FRV_FUNCDESC relocations.
      (More about this later.)  But in order to fetch the relocs, we
      need to first fetch the dynamic symbols.  These symbols need to
This page took 0.032827 seconds and 4 git commands to generate.