* symfile.c (find_separate_debug_file): Assert that the objfile's
authorJim Blandy <jimb@codesourcery.com>
Thu, 30 Jan 2003 21:45:07 +0000 (21:45 +0000)
committerJim Blandy <jimb@codesourcery.com>
Thu, 30 Jan 2003 21:45:07 +0000 (21:45 +0000)
directory name we compute ends with a slash, and then assume that
that's so everywhere we use it.

gdb/ChangeLog
gdb/symfile.c

index 84de0ea404e2f4f157db8846c9aa7dd84ffefe9b..436d69ba5e595a9a98331b01daa87c57234d42ed 100644 (file)
@@ -1,3 +1,9 @@
+2003-01-30  Jim Blandy  <jimb@redhat.com>
+
+       * symfile.c (find_separate_debug_file): Assert that the objfile's
+       directory name we compute ends with a slash, and then assume that
+       that's so everywhere we use it.
+
 2003-01-30  Daniel Jacobowitz  <drow@mvista.com>
 
        * valops.c (value_assign): Flush frame cache after stores to memory
index 68633010cf88f08a0ec90cd12ca4cd8b05cad1f0..81e1f7446fe66baa1c3e415e1b5272d24b4f34a3 100644 (file)
@@ -1167,12 +1167,16 @@ find_separate_debug_file (struct objfile *objfile)
   
   dir = xstrdup (objfile->name);
 
-  /* Strip off filename part */
+  /* Strip off the final filename part, leaving the directory name,
+     followed by a slash.  Objfile names should always be absolute and
+     tilde-expanded, so there should always be a slash in there
+     somewhere.  */
   for (i = strlen(dir) - 1; i >= 0; i--)
     {
       if (IS_DIR_SEPARATOR (dir[i]))
        break;
     }
+  gdb_assert (i >= 0 && IS_DIR_SEPARATOR (dir[i]));
   dir[i+1] = '\0';
   
   debugfile = alloca (strlen (debug_file_directory) + 1
@@ -1210,7 +1214,6 @@ find_separate_debug_file (struct objfile *objfile)
   strcpy (debugfile, debug_file_directory);
   strcat (debugfile, "/");
   strcat (debugfile, dir);
-  strcat (debugfile, "/");
   strcat (debugfile, basename);
 
   if (separate_debug_file_exists (debugfile, crc32))