From: Tom Tromey <tromey@redhat.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: gdb-patches@sourceware.org
Subject: Re: RFA: move value_from_contents_and_address to value.c
Date: Mon, 24 Nov 2008 23:16:00 -0000 [thread overview]
Message-ID: <m3myfozxzu.fsf@fleche.redhat.com> (raw)
In-Reply-To: <20081122050546.GB4318@adacore.com> (Joel Brobecker's message of "Fri\, 21 Nov 2008 21\:05\:46 -0800")
>>>>> "Joel" == Joel Brobecker <brobecker@adacore.com> writes:
Joel> I'm wondering whether the offset parameter is really necessary? Would it
Joel> be worse to call this function with valaddr+embedded_offset rather
Joel> than passing two arguments?
Here is an updated patch which dispenses with this argument.
Built and regtested on x86-64 (compile farm).
Ok?
Tom
2008-11-24 Tom Tromey <tromey@redhat.com>
* ada-lang.c (value_from_contents_and_address): Move...
* value.c: ... here.
* ada-lang.h (value_from_contents_and_address): Move
declaration...
* value.h: ... here.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index f92d23b..d27416f 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -465,26 +465,6 @@ is_suffix (const char *str, const char *suffix)
return (len1 >= len2 && strcmp (str + len1 - len2, suffix) == 0);
}
-/* Create a value of type TYPE whose contents come from VALADDR, if it
- is non-null, and whose memory address (in the inferior) is
- ADDRESS. */
-
-struct value *
-value_from_contents_and_address (struct type *type,
- const gdb_byte *valaddr,
- CORE_ADDR address)
-{
- struct value *v = allocate_value (type);
- if (valaddr == NULL)
- set_value_lazy (v, 1);
- else
- memcpy (value_contents_raw (v), valaddr, TYPE_LENGTH (type));
- VALUE_ADDRESS (v) = address;
- if (address != 0)
- VALUE_LVAL (v) = lval_memory;
- return v;
-}
-
/* The contents of value VAL, treated as a value of type TYPE. The
result is an lval in memory if VAL is. */
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 562a867..440558c 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -257,10 +257,6 @@ extern int ada_value_print (struct value *, struct ui_file *,
/* Defined in ada-lang.c */
-extern struct value *value_from_contents_and_address (struct type *,
- const gdb_byte *,
- CORE_ADDR);
-
extern void ada_emit_char (int, struct ui_file *, int, int);
extern void ada_printchar (int, struct ui_file *);
diff --git a/gdb/value.c b/gdb/value.c
index 695aa33..03385f3 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -1686,6 +1686,26 @@ value_from_string (char *ptr)
return val;
}
+/* Create a value of type TYPE whose contents come from VALADDR, if it
+ is non-null, and whose memory address (in the inferior) is
+ ADDRESS. */
+
+struct value *
+value_from_contents_and_address (struct type *type,
+ const gdb_byte *valaddr,
+ CORE_ADDR address)
+{
+ struct value *v = allocate_value (type);
+ if (valaddr == NULL)
+ set_value_lazy (v, 1);
+ else
+ memcpy (value_contents_raw (v), valaddr, TYPE_LENGTH (type));
+ VALUE_ADDRESS (v) = address;
+ if (address != 0)
+ VALUE_LVAL (v) = lval_memory;
+ return v;
+}
+
struct value *
value_from_double (struct type *type, DOUBLEST num)
{
diff --git a/gdb/value.h b/gdb/value.h
index 65fea99..3e924cc 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -289,6 +289,10 @@ extern struct value *value_from_string (char *string);
extern struct value *value_at (struct type *type, CORE_ADDR addr);
extern struct value *value_at_lazy (struct type *type, CORE_ADDR addr);
+extern struct value *value_from_contents_and_address (struct type *,
+ const gdb_byte *,
+ CORE_ADDR);
+
extern struct value *default_value_from_register (struct type *type,
int regnum,
struct frame_info *frame);
next prev parent reply other threads:[~2008-11-24 20:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-21 17:07 Tom Tromey
2008-11-22 12:00 ` Michael Snyder
2008-11-22 18:01 ` Joel Brobecker
2008-11-23 22:12 ` Tom Tromey
2008-11-24 23:16 ` Tom Tromey [this message]
2008-11-25 11:49 ` Joel Brobecker
2008-11-25 17:06 ` Tom Tromey
2008-11-25 18:23 ` Jerome Guitton
2008-11-25 18:38 ` Jerome Guitton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3myfozxzu.fsf@fleche.redhat.com \
--to=tromey@redhat.com \
--cc=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox