(display_debug_loc): Skip address base changes.
authorNick Clifton <nickc@redhat.com>
Tue, 21 Jan 2003 15:41:10 +0000 (15:41 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 21 Jan 2003 15:41:10 +0000 (15:41 +0000)
binutils/ChangeLog
binutils/readelf.c

index 03b50e245895bf1fb4ab82bb8eaec9f1d8600787..f4c03c5630fde48b95d31693f0ecd0c2a4cd12d0 100644 (file)
@@ -1,3 +1,7 @@
+2003-01-21  Daniel Berlin  <dan@dberlin.org>
+
+       * readelf.c (display_debug_loc): Skip address base changes.
+
 2003-01-17  Fabio Alemagna  <falemagn@aros.org>
 
        * readelf.c (get_osabi_name): Handle ELFOSABI_AROS, ELFOSABI_OPENVMS
index dcc2ec2cd617cbcd47521843da8a50fbdc0336da..ef36de0058c74e227ae42273cb68546aba330862 100644 (file)
@@ -7628,13 +7628,12 @@ display_debug_loc (section, start, file)
 
       while (1)
        {
-         /* Normally, the lists in  the debug_loc section are related to a
-            given compilation unit, and thus, we would use the
-            pointer size of that compilation unit.  However, since we are
-            displaying it seperately here, we either have to store
-            pointer sizes of all compilation units, or assume they don't
-            change.   We assume, like the debug_line display, that
-            it doesn't change.  */
+         /* Normally, the lists in the debug_loc section are related to a
+            given compilation unit, and thus, we would use the pointer size
+            of that compilation unit.  However, since we are displaying it
+            seperately here, we either have to store pointer sizes of all
+            compilation units, or assume they don't change.   We assume,
+            like the debug_line display, that it doesn't change.  */
          begin = byte_get (start, debug_line_pointer_size);
          start += debug_line_pointer_size;
          end = byte_get (start, debug_line_pointer_size);
@@ -7643,6 +7642,10 @@ display_debug_loc (section, start, file)
          if (begin == 0 && end == 0)
            break;
 
+         /* For now, skip any base address specifiers.  */
+         if (begin == 0xffffffff)
+           continue;
+
          begin += addr;
          end += addr;