gprofng: fix the Dwarf reader
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Sat, 11 Mar 2023 00:16:49 +0000 (16:16 -0800)
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Sat, 11 Mar 2023 23:12:08 +0000 (15:12 -0800)
gprofng/ChangeLog
2023-03-10  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

gprofng/src/DwarfLib.cc (DwrLineRegs::getPath): Add a DW_AT_comp_dir
string if the directoty table has relative names.

gprofng/src/DwarfLib.cc

index 64003797d25f25b5042197cc04465e73e7a6173b..90c3e6e95a2091fdf8d2e58a39eb4a1ddfc8ac14 100644 (file)
@@ -1779,7 +1779,15 @@ DwrLineRegs::getPath (int fn)
     }
   if (dir == NULL || *dir == 0)
     return fnp->path;
-  fnp->path = canonical_path (dbe_sprintf ("%s/%s", dir, fnp->fname));
+
+  char *dir1 = NULL;
+  if (*dir != '/')
+    dir1 = dir_names->get(0)->fname;
+  if (dir1 && *dir != 0)
+    fnp->path = dbe_sprintf ("%s/%s/%s", dir1, dir, fnp->fname);
+  else 
+    fnp->path = dbe_sprintf ("%s/%s", dir, fnp->fname);
+  fnp->path = canonical_path (fnp->path);
   return fnp->path;
 }