PR29788, gprofng cannot display Java's generated assembly code

Message ID 20221116053326.1337432-1-vladimir.mezentsev@oracle.com
State Accepted
Headers
Series PR29788, gprofng cannot display Java's generated assembly code |

Checks

Context Check Description
snail/binutils-gdb-check success Github commit url

Commit Message

Vladimir Mezentsev Nov. 16, 2022, 5:33 a.m. UTC
  From: Vladimir Mezentsev <vladimir.mezentsev@oracle.com>

gprofng/ChangeLog
2022-11-15  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

	PR gprofng/29788
	* src/Experiment.h: Declare dyntext_name.
	* src/Experiment.cc: Use dyntext_name to initialize img_fname.
---
 gprofng/src/Experiment.cc | 10 +++++-----
 gprofng/src/Experiment.h  |  3 ++-
 2 files changed, 7 insertions(+), 6 deletions(-)
  

Patch

diff --git a/gprofng/src/Experiment.cc b/gprofng/src/Experiment.cc
index 98aae9714ac..44de387f3d2 100644
--- a/gprofng/src/Experiment.cc
+++ b/gprofng/src/Experiment.cc
@@ -1370,6 +1370,7 @@  Experiment::Experiment ()
   expt_name = NULL;
   arch_name = NULL;
   fndr_arch_name = NULL;
+  dyntext_name = NULL;
   logFile = NULL;
 
   dataDscrs = new Vector<DataDescriptor*>;
@@ -1432,6 +1433,7 @@  Experiment::~Experiment ()
   free (expt_name);
   free (arch_name);
   free (fndr_arch_name);
+  free (dyntext_name);
   delete jthreads_idx;
   delete cstack;
   delete cstackShowHide;
@@ -6052,11 +6054,10 @@  Experiment::fetch_pprocq ()
 int
 Experiment::read_dyntext_file ()
 {
-  char *data_file_name = dbe_sprintf ("%s/%s", expt_name, SP_DYNTEXT_FILE);
-  Data_window *dwin = new Data_window (data_file_name);
+  dyntext_name = dbe_sprintf ("%s/%s", expt_name, SP_DYNTEXT_FILE);
+  Data_window *dwin = new Data_window (dyntext_name);
   if (dwin->not_opened ())
     {
-      free (data_file_name);
       delete dwin;
       return 1;
     }
@@ -6089,7 +6090,7 @@  Experiment::read_dyntext_file ()
 	case DT_CODE:
 	  if (fp)
 	    {
-	      fp->img_fname = data_file_name;
+	      fp->img_fname = dyntext_name;
 	      fp->img_offset = offset + sizeof (DT_common);
 	      if ((platform != Intel) && (platform != Amd64))
 		{ //ARCH(SPARC)
@@ -6178,7 +6179,6 @@  Experiment::read_dyntext_file ()
       offset += cpcktsize;
     }
   free (progress_msg);
-  free (data_file_name);
   delete dwin;
   return 0;
 }
diff --git a/gprofng/src/Experiment.h b/gprofng/src/Experiment.h
index 17c91bda23e..46abbc73d3d 100644
--- a/gprofng/src/Experiment.h
+++ b/gprofng/src/Experiment.h
@@ -434,7 +434,8 @@  protected:
   char *expt_name;      // name of experiment
   char *arch_name;      // <experiment>/archive
   char *fndr_arch_name; // <founder_experiment>/archive
-  //TBR? hrtime_t sample_time;  // total of sample durations
+  char *dyntext_name;   // <experiment>/dyntext
+
   int yyparse ();       // Allow yyparse actions to access
   Vaddr stack_base;     // Stack base