2005-11-19 Jim Blandy <jimb@redhat.com>
authorJim Blandy <jimb@codesourcery.com>
Sat, 19 Nov 2005 18:57:28 +0000 (18:57 +0000)
committerJim Blandy <jimb@codesourcery.com>
Sat, 19 Nov 2005 18:57:28 +0000 (18:57 +0000)
* tracepoint.c (stringify_collection_list): Indicate absolute
memory ranges by using "-1" as the memory range's base register
number, not "FFFFFFFF".

gdb/ChangeLog
gdb/tracepoint.c

index 362dd426e7d8bedaf1ff72f5679c2d1507b17c02..fa8f07fcd39c90c9e47cf2d109bded7d220206d7 100644 (file)
@@ -1,3 +1,9 @@
+2005-11-19  Jim Blandy  <jimb@redhat.com>
+
+       * tracepoint.c (stringify_collection_list): Indicate absolute
+       memory ranges by using "-1" as the memory range's base register
+       number, not "FFFFFFFF".
+
 2005-11-19  Randolph Chung  <tausq@debian.org>
 
        * dwarf2loc.c (dwarf2_tracepoint_var_ref): Remove extra add for
index 1858681314c7af2af137d0daa8ef688dba9d0c2e..42326638f03f112fb005b5768bc41693e2ef2a19 100644 (file)
@@ -1437,10 +1437,17 @@ stringify_collection_list (struct collection_list *list, char *string)
          end = temp_buf;
        }
 
-      sprintf (end, "M%X,%s,%lX", 
-              list->list[i].type,
-              tmp2,
-              (long) (list->list[i].end - list->list[i].start));
+      {
+        bfd_signed_vma length = list->list[i].end - list->list[i].start;
+
+        /* The "%X" conversion specifier expects an unsigned argument,
+           so passing -1 to it directly gives you "FFFFFFFF" (or more,
+           depending on sizeof (unsigned)).  Special-case it.  */
+        if (list->list[i].type == -1)
+          sprintf (end, "M-1,%s,%lX", tmp2, (long) length);
+        else
+          sprintf (end, "M%X,%s,%lX", list->list[i].type, tmp2, (long) length);
+      }
 
       count += strlen (end);
       end = temp_buf + count;