diff options
author | Jim Blandy <jimb@codesourcery.com> | 2005-11-19 18:57:28 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2005-11-19 18:57:28 +0000 |
commit | d194871675d5430f0993982376dbde351ea12539 (patch) | |
tree | ed66e3665a88542d11c81fb503c02160d949ca1b | |
parent | 9c23835799161e27e2223564295f53c0a97d5689 (diff) | |
download | gdb-d194871675d5430f0993982376dbde351ea12539.zip gdb-d194871675d5430f0993982376dbde351ea12539.tar.gz gdb-d194871675d5430f0993982376dbde351ea12539.tar.bz2 |
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".
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/tracepoint.c | 15 |
2 files changed, 17 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 362dd42..fa8f07f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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 diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c index 1858681..4232663 100644 --- a/gdb/tracepoint.c +++ b/gdb/tracepoint.c @@ -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; |