diff options
author | Pedro Alves <palves@redhat.com> | 2011-02-14 11:23:33 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-02-14 11:23:33 +0000 |
commit | c8c1c22feaaf76ddd437776a3cdeaedf4695916a (patch) | |
tree | 39a5cbfd10fae9dee763225229f2e532e4d312ef /gdb/value.h | |
parent | e6e4e7014d3721283cf0415cadb3c7f1a1200f7b (diff) | |
download | gdb-c8c1c22feaaf76ddd437776a3cdeaedf4695916a.zip gdb-c8c1c22feaaf76ddd437776a3cdeaedf4695916a.tar.gz gdb-c8c1c22feaaf76ddd437776a3cdeaedf4695916a.tar.bz2 |
gdb/
* value.h (value_available_contents_eq): Declare.
* value.c (find_first_range_overlap): New function.
(value_available_contents_eq): New function.
* valprint.c (val_print_array_elements): Use
value_available_contents_eq.
* ada-valprint.c (val_print_packed_array_elements): Use
value_available_contents_eq.
* jv-valprint.c (java_value_print): Use
value_available_contents_eq.
Diffstat (limited to 'gdb/value.h')
-rw-r--r-- | gdb/value.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/gdb/value.h b/gdb/value.h index d2eb091..0feb92f 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -374,6 +374,31 @@ extern int value_bytes_available (const struct value *value, extern void mark_value_bytes_unavailable (struct value *value, int offset, int length); +/* Compare LENGTH bytes of VAL1's contents starting at OFFSET1 with + LENGTH bytes of VAL2's contents starting at OFFSET2. Returns true + iff the set of available contents match. Unavailable contents + compare equal with unavailable contents, and different with any + available byte. For example, if 'x's represent an unavailable + byte, and 'V' and 'Z' represent different available bytes, in a + value with length 16: + + offset: 0 4 8 12 16 + contents: xxxxVVVVxxxxVVZZ + + then: + + value_available_contents_eq(val, 0, val, 8, 6) => 1 + value_available_contents_eq(val, 0, val, 4, 4) => 1 + value_available_contents_eq(val, 0, val, 8, 8) => 0 + value_available_contents_eq(val, 4, val, 12, 2) => 1 + value_available_contents_eq(val, 4, val, 12, 4) => 0 + value_available_contents_eq(val, 3, val, 4, 4) => 0 +*/ + +extern int value_available_contents_eq (const struct value *val1, int offset1, + const struct value *val2, int offset2, + int length); + /* Read LENGTH bytes of memory starting at MEMADDR into BUFFER, which is (or will be copied to) VAL's contents buffer offset by EMBEDDED_OFFSET (that is, to &VAL->contents[EMBEDDED_OFFSET]). |