This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: Handle record after ZERO terminator


Some .eh_frame section has additional records after ZERO terminator.
This patch prints out them. Also if a CIE pointer is invalid, there
is no need to process further.


H.J.
----
2006-05-13  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c (display_debug_frames): Don't return on ZERO
	terminator.  Skip invalid CIE pointer.

--- binutils/dwarf.c.zero	2006-03-15 19:31:54.000000000 -0800
+++ binutils/dwarf.c	2006-05-11 12:44:32.000000000 -0700
@@ -2927,7 +2927,7 @@ display_debug_frames (struct dwarf_secti
 	{
 	  printf ("\n%08lx ZERO terminator\n\n",
 		    (unsigned long)(saved_start - section_start));
-	  return 1;
+	  continue;
 	}
 
       if (length == 0xffffffff)
@@ -3080,14 +3080,7 @@ display_debug_frames (struct dwarf_secti
 	    {
 	      warn ("Invalid CIE pointer %08lx in FDE at %08lx\n",
 		    cie_id, (unsigned long)(saved_start - section_start));
-	      start = block_end;
-	      fc->ncols = 0;
-	      fc->col_type = xmalloc (sizeof (short int));
-	      fc->col_offset = xmalloc (sizeof (int));
-	      frame_need_space (fc, max_regs - 1);
-	      cie = fc;
-	      fc->augmentation = "";
-	      fc->fde_encoding = 0;
+	      return 1;
 	    }
 	  else
 	    {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]