aboutsummaryrefslogtreecommitdiff
path: root/gdb/value.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2011-02-14 11:23:33 +0000
committerPedro Alves <palves@redhat.com>2011-02-14 11:23:33 +0000
commitc8c1c22feaaf76ddd437776a3cdeaedf4695916a (patch)
tree39a5cbfd10fae9dee763225229f2e532e4d312ef /gdb/value.h
parente6e4e7014d3721283cf0415cadb3c7f1a1200f7b (diff)
downloadgdb-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.h25
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]).