Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: gdb/value.h

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gdb/valprint.c ('k') | gdb/value.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gdb/value.h
diff --git a/gdb/value.h b/gdb/value.h
index d8b157f0b83b84b834ce4f1b56f0bbb4a252f950..db964e36e83ad3e9bb274208b8119ef0bd8f9a10 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -1,6 +1,6 @@
/* Definitions for values of C expressions, for GDB.
- Copyright (C) 1986-2012 Free Software Foundation, Inc.
+ Copyright (C) 1986-2013 Free Software Foundation, Inc.
This file is part of GDB.
@@ -90,8 +90,6 @@ extern void set_value_offset (struct value *, int offset);
not_lval and be done with it? */
extern int deprecated_value_modifiable (struct value *value);
-extern void deprecated_set_value_modifiable (struct value *value,
- int modifiable);
/* If a value represents a C++ object, then the `type' field gives the
object's compile-time type. If the object actually belongs to some
@@ -275,6 +273,11 @@ extern void set_value_lazy (struct value *value, int val);
extern int value_stack (struct value *);
extern void set_value_stack (struct value *value, int val);
+/* Throw an error complaining that the value has been optimized
+ out. */
+
+extern void error_value_optimized_out (void);
+
/* value_contents() and value_contents_raw() both return the address
of the gdb buffer used to hold a copy of the contents of the lval.
value_contents() is used when the contents of the buffer are needed
@@ -321,10 +324,16 @@ extern int value_fetch_lazy (struct value *val);
extern int value_contents_equal (struct value *val1, struct value *val2);
/* If nonzero, this is the value of a variable which does not actually
- exist in the program. */
+ exist in the program, at least partially. If the value is lazy,
+ this may fetch it now. */
extern int value_optimized_out (struct value *value);
extern void set_value_optimized_out (struct value *value, int val);
+/* Like value_optimized_out, but don't fetch the value even if it is
+ lazy. Mainly useful for constructing other values using VALUE as
+ template. */
+extern int value_optimized_out_const (const struct value *value);
+
/* Like value_optimized_out, but return false if any bit in the object
is valid. */
extern int value_entirely_optimized_out (const struct value *value);
@@ -431,6 +440,10 @@ extern int value_bytes_available (const struct value *value,
whole object is unavailable. */
extern int value_entirely_available (struct value *value);
+/* Like value_entirely_available, but return false if any byte in the
+ whole object is available. */
+extern int value_entirely_unavailable (struct value *value);
+
/* Mark VALUE's content bytes starting at OFFSET and extending for
LENGTH bytes as unavailable. */
@@ -465,7 +478,12 @@ extern void mark_value_bytes_unavailable (struct value *value,
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
-*/
+
+ We only know whether a value chunk is available if we've tried to
+ read it. As this routine is used by printing routines, which may
+ be printing values in the value history, long after the inferior is
+ gone, it works with const values. Therefore, this routine must not
+ be called with lazy values. */
extern int value_available_contents_eq (const struct value *val1, int offset1,
const struct value *val2, int offset2,
@@ -482,6 +500,12 @@ extern void read_value_memory (struct value *val, int embedded_offset,
int stack, CORE_ADDR memaddr,
gdb_byte *buffer, size_t length);
+/* Cast SCALAR_VALUE to the element type of VECTOR_TYPE, then replicate
+ into each element of a new vector value with VECTOR_TYPE. */
+
+struct value *value_vector_widen (struct value *scalar_value,
+ struct type *vector_type);
+
#include "symtab.h"
@@ -557,7 +581,8 @@ extern CORE_ADDR address_from_register (struct type *type, int regnum,
extern struct value *value_of_variable (struct symbol *var,
const struct block *b);
-extern struct value *address_of_variable (struct symbol *var, struct block *b);
+extern struct value *address_of_variable (struct symbol *var,
+ const struct block *b);
extern struct value *value_of_register (int regnum, struct frame_info *frame);
@@ -573,7 +598,6 @@ extern struct value *default_read_var_value (struct symbol *var,
extern struct value *allocate_value (struct type *type);
extern struct value *allocate_value_lazy (struct type *type);
-extern void allocate_value_contents (struct value *value);
extern void value_contents_copy (struct value *dst, int dst_offset,
struct value *src, int src_offset,
int length);
@@ -587,12 +611,10 @@ extern struct value *value_mark (void);
extern void value_free_to_mark (struct value *mark);
-extern struct value *value_cstring (char *ptr, int len,
+extern struct value *value_cstring (char *ptr, ssize_t len,
struct type *char_type);
-extern struct value *value_string (char *ptr, int len,
+extern struct value *value_string (char *ptr, ssize_t len,
struct type *char_type);
-extern struct value *value_bitstring (char *ptr, int len,
- struct type *index_type);
extern struct value *value_array (int lowbound, int highbound,
struct value **elemvec);
@@ -646,7 +668,7 @@ enum oload_search_type { NON_METHOD, METHOD, BOTH };
extern int find_overload_match (struct value **args, int nargs,
const char *name,
- enum oload_search_type method, int lax,
+ enum oload_search_type method,
struct value **objp, struct symbol *fsym,
struct value **valp, struct symbol **symp,
int *staticp, const int no_adl);
@@ -693,6 +715,10 @@ extern int value_in (struct value *element, struct value *set);
extern int value_bit_index (struct type *type, const gdb_byte *addr,
int index);
+extern enum return_value_convention
+struct_return_convention (struct gdbarch *gdbarch, struct value *function,
+ struct type *value_type);
+
extern int using_struct_return (struct gdbarch *gdbarch,
struct value *function,
struct type *value_type);
@@ -710,22 +736,23 @@ extern struct value *evaluate_subexpression_type (struct expression *exp,
extern void fetch_subexp_value (struct expression *exp, int *pc,
struct value **valp, struct value **resultp,
- struct value **val_chain);
+ struct value **val_chain,
+ int preserve_errors);
extern char *extract_field_op (struct expression *exp, int *subexp);
extern struct value *evaluate_subexp_with_coercion (struct expression *,
int *, enum noside);
-extern struct value *parse_and_eval (char *exp);
+extern struct value *parse_and_eval (const char *exp);
-extern struct value *parse_to_comma_and_eval (char **expp);
+extern struct value *parse_to_comma_and_eval (const char **expp);
extern struct type *parse_and_eval_type (char *p, int length);
-extern CORE_ADDR parse_and_eval_address (char *exp);
+extern CORE_ADDR parse_and_eval_address (const char *exp);
-extern LONGEST parse_and_eval_long (char *exp);
+extern LONGEST parse_and_eval_long (const char *exp);
extern void unop_promote (const struct language_defn *language,
struct gdbarch *gdbarch,
@@ -794,10 +821,9 @@ struct internalvar_funcs
void (*destroy) (void *data);
};
-extern struct internalvar *
-create_internalvar_type_lazy (const char *name,
- const struct internalvar_funcs *funcs,
- void *data);
+extern struct internalvar *create_internalvar_type_lazy (const char *name,
+ const struct internalvar_funcs *funcs,
+ void *data);
/* Compile an internal variable to an agent expression. VAR is the
variable to compile; EXPR and VALUE are the agent expression we are
@@ -887,7 +913,7 @@ extern void value_print (struct value *val, struct ui_file *stream,
extern void value_print_array_elements (struct value *val,
struct ui_file *stream, int format,
- enum val_prettyprint pretty);
+ enum val_prettyformat pretty);
extern struct value *value_release_to_mark (struct value *mark);
@@ -914,8 +940,6 @@ extern void print_variable_and_value (const char *name,
struct ui_file *stream,
int indent);
-extern int check_field (struct type *, const char *);
-
extern void typedef_print (struct type *type, struct symbol *news,
struct ui_file *stream);
« no previous file with comments | « gdb/valprint.c ('k') | gdb/value.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698