* dwarfread.c (read_file_scope): Pass contents of AT_comp_dir
authorFred Fish <fnf@specifix.com>
Fri, 17 Jul 1992 17:16:26 +0000 (17:16 +0000)
committerFred Fish <fnf@specifix.com>
Fri, 17 Jul 1992 17:16:26 +0000 (17:16 +0000)
to start_symtab as the directory name.
* dwarfread.c (completedieinfo):  Strip off any leading hostname
portion of the AT_comp_dir attribute string.  Gdb doesn't know
what to do with them (FIXME).

gdb/ChangeLog
gdb/dwarfread.c

index 67aa2301930fed7096bff255c33456eefe4a0a88..355011f7d7d7328c86906c917810c831ddf4d472 100644 (file)
@@ -1,3 +1,11 @@
+Fri Jul 17 10:14:56 1992  Fred Fish  (fnf@cygnus.com)
+
+       * dwarfread.c (read_file_scope):  Pass contents of AT_comp_dir
+       to start_symtab as the directory name.
+       * dwarfread.c (completedieinfo):  Strip off any leading hostname
+       portion of the AT_comp_dir attribute string.  Gdb doesn't know
+       what to do with them (FIXME).
+
 Thu Jul 16 13:37:09 1992  Stu Grossman  (grossman at cygnus.com)
 
        * breakpoint.c (commands_command):  Simplify code a bit, remove
index 9cdfada3ec99ee023efb55e175375404ee17fdda..38714e2f763238512abaadc206374cd6a6c0bbbd 100644 (file)
@@ -1643,7 +1643,7 @@ read_file_scope (dip, thisdie, enddie, objfile)
   utypes = (struct type **) xmalloc (numutypes * sizeof (struct type *));
   back_to = make_cleanup (free, utypes);
   memset (utypes, 0, numutypes * sizeof (struct type *));
-  start_symtab (dip -> at_name, NULL, dip -> at_low_pc);
+  start_symtab (dip -> at_name, dip -> at_comp_dir, dip -> at_low_pc);
   decode_line_numbers (lnbase);
   process_dies (thisdie + dip -> die_length, enddie, objfile);
   symtab = end_symtab (dip -> at_high_pc, 0, 0, objfile);
@@ -3274,7 +3274,17 @@ completedieinfo (dip, objfile)
          dip -> at_name = diep;
          break;
        case AT_comp_dir:
-         dip -> at_comp_dir = diep;
+         /* For now, ignore any "hostname:" portion, since gdb doesn't
+            know how to deal with it.  (FIXME). */
+         dip -> at_comp_dir = strrchr (diep, ':');
+         if (dip -> at_comp_dir != NULL)
+           {
+             dip -> at_comp_dir++;
+           }
+         else
+           {
+             dip -> at_comp_dir = diep;
+           }
          break;
        case AT_producer:
          dip -> at_producer = diep;