aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2011-02-14 11:27:36 +0000
committerPedro Alves <palves@redhat.com>2011-02-14 11:27:36 +0000
commita3d34bf49acc2aa68810ac66fb1047e99a8bdd26 (patch)
treedc0e07dc725e1941f0038c157cdbabbaa16e0751
parent9fc6d940ae73525e1e3ef9332452926d18732b14 (diff)
downloadgdb-a3d34bf49acc2aa68810ac66fb1047e99a8bdd26.zip
gdb-a3d34bf49acc2aa68810ac66fb1047e99a8bdd26.tar.gz
gdb-a3d34bf49acc2aa68810ac66fb1047e99a8bdd26.tar.bz2
<unavailable> references.
gdb/ * valops.c (get_value_at): Use value_from_contents_and_address, avoiding read_memory.
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/valops.c14
2 files changed, 10 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 34ebe9b..b77cdf2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,12 @@
2011-02-14 Pedro Alves <pedro@codesourcery.com>
+ <unavailable> references.
+
+ * valops.c (get_value_at): Use value_from_contents_and_address,
+ avoiding read_memory.
+
+2011-02-14 Pedro Alves <pedro@codesourcery.com>
+
* c-valprint.c (c_val_print): Print a string with unavailable
contents as an array.
diff --git a/gdb/valops.c b/gdb/valops.c
index 802242c..ab31976 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -917,18 +917,10 @@ get_value_at (struct type *type, CORE_ADDR addr, int lazy)
if (TYPE_CODE (check_typedef (type)) == TYPE_CODE_VOID)
error (_("Attempt to dereference a generic pointer."));
- if (lazy)
- {
- val = allocate_value_lazy (type);
- }
- else
- {
- val = allocate_value (type);
- read_memory (addr, value_contents_all_raw (val), TYPE_LENGTH (type));
- }
+ val = value_from_contents_and_address (type, NULL, addr);
- VALUE_LVAL (val) = lval_memory;
- set_value_address (val, addr);
+ if (!lazy)
+ value_fetch_lazy (val);
return val;
}