gdb: Convert language la_watch_location_expression field to a method
This commit changes the language_data::la_watch_location_expression function pointer member variable into a member function of language_defn. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_watch_location_expression): Rename to ada_language::watch_location_expression. (ada_language_data): Delete la_watch_location_expression initializer. (ada_language::watch_location_expression): New member function, implementation from ada_watch_location_expression. * breakpoint.c (watch_command_1): Update call to watch_location_expression. * c-lang.c (c_watch_location_expression): Rename to language_defn::watch_location_expression. (c_language_data): Delete la_watch_location_expression initializer. (cplus_language_data): Likewise. (asm_language_data): Likewise. (minimal_language_data): Likewise. * c-lang.h (c_watch_location_expression): Delete declaration. * d-lang.c (d_language_data): Delete la_watch_location_expression initializer. * f-lang.c (f_language_data): Likewise. * go-lang.c (go_language_data): Likewise. * language.c (language_defn::watch_location_expression): Member function implementation from c_watch_location_expression. (unknown_language_data): Delete la_watch_location_expression initializer. (auto_language_data): Likewise. * language.h (language_data): Delete la_watch_location_expression field. (language_defn::watch_location_expression): Declare new member function. * m2-lang.c (m2_language_data): Delete la_watch_location_expression initializer. * objc-lang.c (objc_language_data): Likewise. * opencl-lang.c (opencl_language_data): Likewise. * p-lang.c (pascal_language_data): Likewise. * rust-lang.c (rust_watch_location_expression): Rename to rust_language::watch_location_expression. (rust_language_data): Delete la_watch_location_expression initializer. (rust_language::watch_location_expression): New member function, implementation from rust_watch_location_expression.
This commit is contained in:
parent
7e56227dff
commit
f16a9f57b5
15 changed files with 86 additions and 61 deletions
|
@ -1,3 +1,46 @@
|
||||||
|
2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
|
* ada-lang.c (ada_watch_location_expression): Rename to
|
||||||
|
ada_language::watch_location_expression.
|
||||||
|
(ada_language_data): Delete la_watch_location_expression
|
||||||
|
initializer.
|
||||||
|
(ada_language::watch_location_expression): New member function,
|
||||||
|
implementation from ada_watch_location_expression.
|
||||||
|
* breakpoint.c (watch_command_1): Update call to
|
||||||
|
watch_location_expression.
|
||||||
|
* c-lang.c (c_watch_location_expression): Rename to
|
||||||
|
language_defn::watch_location_expression.
|
||||||
|
(c_language_data): Delete la_watch_location_expression
|
||||||
|
initializer.
|
||||||
|
(cplus_language_data): Likewise.
|
||||||
|
(asm_language_data): Likewise.
|
||||||
|
(minimal_language_data): Likewise.
|
||||||
|
* c-lang.h (c_watch_location_expression): Delete declaration.
|
||||||
|
* d-lang.c (d_language_data): Delete la_watch_location_expression
|
||||||
|
initializer.
|
||||||
|
* f-lang.c (f_language_data): Likewise.
|
||||||
|
* go-lang.c (go_language_data): Likewise.
|
||||||
|
* language.c (language_defn::watch_location_expression): Member
|
||||||
|
function implementation from c_watch_location_expression.
|
||||||
|
(unknown_language_data): Delete la_watch_location_expression
|
||||||
|
initializer.
|
||||||
|
(auto_language_data): Likewise.
|
||||||
|
* language.h (language_data): Delete la_watch_location_expression
|
||||||
|
field.
|
||||||
|
(language_defn::watch_location_expression): Declare new member
|
||||||
|
function.
|
||||||
|
* m2-lang.c (m2_language_data): Delete
|
||||||
|
la_watch_location_expression initializer.
|
||||||
|
* objc-lang.c (objc_language_data): Likewise.
|
||||||
|
* opencl-lang.c (opencl_language_data): Likewise.
|
||||||
|
* p-lang.c (pascal_language_data): Likewise.
|
||||||
|
* rust-lang.c (rust_watch_location_expression): Rename to
|
||||||
|
rust_language::watch_location_expression.
|
||||||
|
(rust_language_data): Delete la_watch_location_expression
|
||||||
|
initializer.
|
||||||
|
(rust_language::watch_location_expression): New member function,
|
||||||
|
implementation from rust_watch_location_expression.
|
||||||
|
|
||||||
2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
2020-06-17 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* ada-lang.c (ada_collect_symbol_completion_matches): Rename to
|
* ada-lang.c (ada_collect_symbol_completion_matches): Rename to
|
||||||
|
|
|
@ -488,17 +488,6 @@ add_angle_brackets (const char *str)
|
||||||
return string_printf ("<%s>", str);
|
return string_printf ("<%s>", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* la_watch_location_expression for Ada. */
|
|
||||||
|
|
||||||
static gdb::unique_xmalloc_ptr<char>
|
|
||||||
ada_watch_location_expression (struct type *type, CORE_ADDR addr)
|
|
||||||
{
|
|
||||||
type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
|
|
||||||
std::string name = type_to_string (type);
|
|
||||||
return gdb::unique_xmalloc_ptr<char>
|
|
||||||
(xstrprintf ("{%s} %s", name.c_str (), core_addr_to_string (addr)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Assuming V points to an array of S objects, make sure that it contains at
|
/* Assuming V points to an array of S objects, make sure that it contains at
|
||||||
least M objects, updating V and S as necessary. */
|
least M objects, updating V and S as necessary. */
|
||||||
|
|
||||||
|
@ -13783,7 +13772,6 @@ extern const struct language_data ada_language_data =
|
||||||
ada_op_print_tab, /* expression operators for printing */
|
ada_op_print_tab, /* expression operators for printing */
|
||||||
0, /* c-style arrays */
|
0, /* c-style arrays */
|
||||||
1, /* String lower bound */
|
1, /* String lower bound */
|
||||||
ada_watch_location_expression,
|
|
||||||
&ada_varobj_ops,
|
&ada_varobj_ops,
|
||||||
ada_is_string_type,
|
ada_is_string_type,
|
||||||
"(...)" /* la_struct_too_deep_ellipsis */
|
"(...)" /* la_struct_too_deep_ellipsis */
|
||||||
|
@ -14102,6 +14090,17 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See language.h. */
|
||||||
|
|
||||||
|
gdb::unique_xmalloc_ptr<char> watch_location_expression
|
||||||
|
(struct type *type, CORE_ADDR addr) const override
|
||||||
|
{
|
||||||
|
type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
|
||||||
|
std::string name = type_to_string (type);
|
||||||
|
return gdb::unique_xmalloc_ptr<char>
|
||||||
|
(xstrprintf ("{%s} %s", name.c_str (), core_addr_to_string (addr)));
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
/* See language.h. */
|
/* See language.h. */
|
||||||
|
|
||||||
|
|
|
@ -10738,7 +10738,7 @@ watch_command_1 (const char *arg, int accessflag, int from_tty,
|
||||||
CORE_ADDR addr = value_as_address (val.get ());
|
CORE_ADDR addr = value_as_address (val.get ());
|
||||||
|
|
||||||
w->exp_string_reparse
|
w->exp_string_reparse
|
||||||
= current_language->la_watch_location_expression (t, addr).release ();
|
= current_language->watch_location_expression (t, addr).release ();
|
||||||
|
|
||||||
w->exp_string = xstrprintf ("-location %.*s",
|
w->exp_string = xstrprintf ("-location %.*s",
|
||||||
(int) (exp_end - exp_start), exp_start);
|
(int) (exp_end - exp_start), exp_start);
|
||||||
|
|
15
gdb/c-lang.c
15
gdb/c-lang.c
|
@ -727,17 +727,6 @@ evaluate_subexp_c (struct type *expect_type, struct expression *exp,
|
||||||
return evaluate_subexp_standard (expect_type, exp, pos, noside);
|
return evaluate_subexp_standard (expect_type, exp, pos, noside);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* la_watch_location_expression for C. */
|
|
||||||
|
|
||||||
gdb::unique_xmalloc_ptr<char>
|
|
||||||
c_watch_location_expression (struct type *type, CORE_ADDR addr)
|
|
||||||
{
|
|
||||||
type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
|
|
||||||
std::string name = type_to_string (type);
|
|
||||||
return gdb::unique_xmalloc_ptr<char>
|
|
||||||
(xstrprintf ("* (%s *) %s", name.c_str (), core_addr_to_string (addr)));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* See c-lang.h. */
|
/* See c-lang.h. */
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
@ -914,7 +903,6 @@ extern const struct language_data c_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&c_varobj_ops,
|
&c_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
@ -1026,7 +1014,6 @@ extern const struct language_data cplus_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&cplus_varobj_ops,
|
&cplus_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
@ -1226,7 +1213,6 @@ extern const struct language_data asm_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
@ -1293,7 +1279,6 @@ extern const struct language_data minimal_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -116,9 +116,6 @@ extern void c_emit_char (int c, struct type *type,
|
||||||
|
|
||||||
extern const struct op_print c_op_print_tab[];
|
extern const struct op_print c_op_print_tab[];
|
||||||
|
|
||||||
extern gdb::unique_xmalloc_ptr<char> c_watch_location_expression
|
|
||||||
(struct type *type, CORE_ADDR addr);
|
|
||||||
|
|
||||||
/* These are in c-typeprint.c: */
|
/* These are in c-typeprint.c: */
|
||||||
|
|
||||||
extern void c_type_print_base (struct type *, struct ui_file *,
|
extern void c_type_print_base (struct type *, struct ui_file *,
|
||||||
|
|
|
@ -157,7 +157,6 @@ extern const struct language_data d_language_data =
|
||||||
d_op_print_tab, /* Expression operators for printing. */
|
d_op_print_tab, /* Expression operators for printing. */
|
||||||
1, /* C-style arrays. */
|
1, /* C-style arrays. */
|
||||||
0, /* String lower bound. */
|
0, /* String lower bound. */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -578,7 +578,6 @@ extern const struct language_data f_language_data =
|
||||||
f_op_print_tab, /* expression operators for printing */
|
f_op_print_tab, /* expression operators for printing */
|
||||||
0, /* arrays are first-class (not c-style) */
|
0, /* arrays are first-class (not c-style) */
|
||||||
1, /* String lower bound */
|
1, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
f_is_string_type_p,
|
f_is_string_type_p,
|
||||||
"(...)" /* la_struct_too_deep_ellipsis */
|
"(...)" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -542,7 +542,6 @@ extern const struct language_data go_language_data =
|
||||||
go_op_print_tab, /* Expression operators for printing. */
|
go_op_print_tab, /* Expression operators for printing. */
|
||||||
1, /* C-style arrays. */
|
1, /* C-style arrays. */
|
||||||
0, /* String lower bound. */
|
0, /* String lower bound. */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
go_is_string_type_p,
|
go_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -622,6 +622,19 @@ language_defn::print_array_index (struct type *index_type, LONGEST index,
|
||||||
fprintf_filtered (stream, "] = ");
|
fprintf_filtered (stream, "] = ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See language.h. */
|
||||||
|
|
||||||
|
gdb::unique_xmalloc_ptr<char>
|
||||||
|
language_defn::watch_location_expression (struct type *type,
|
||||||
|
CORE_ADDR addr) const
|
||||||
|
{
|
||||||
|
/* Generates an expression that assumes a C like syntax is valid. */
|
||||||
|
type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
|
||||||
|
std::string name = type_to_string (type);
|
||||||
|
return gdb::unique_xmalloc_ptr<char>
|
||||||
|
(xstrprintf ("* (%s *) %s", name.c_str (), core_addr_to_string (addr)));
|
||||||
|
}
|
||||||
|
|
||||||
/* The default implementation of the get_symbol_name_matcher_inner method
|
/* The default implementation of the get_symbol_name_matcher_inner method
|
||||||
from the language_defn class. Matches with strncmp_iw. */
|
from the language_defn class. Matches with strncmp_iw. */
|
||||||
|
|
||||||
|
@ -779,7 +792,6 @@ extern const struct language_data unknown_language_data =
|
||||||
unk_op_print_tab, /* expression operators for printing */
|
unk_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
default_is_string_type_p,
|
default_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
@ -850,7 +862,6 @@ extern const struct language_data auto_language_data =
|
||||||
unk_op_print_tab, /* expression operators for printing */
|
unk_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
default_is_string_type_p,
|
default_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -319,12 +319,6 @@ struct language_data
|
||||||
/* Index to use for extracting the first element of a string. */
|
/* Index to use for extracting the first element of a string. */
|
||||||
char string_lower_bound;
|
char string_lower_bound;
|
||||||
|
|
||||||
/* Return an expression that can be used for a location
|
|
||||||
watchpoint. TYPE is a pointer type that points to the memory
|
|
||||||
to watch, and ADDR is the address of the watched memory. */
|
|
||||||
gdb::unique_xmalloc_ptr<char> (*la_watch_location_expression)
|
|
||||||
(struct type *type, CORE_ADDR addr);
|
|
||||||
|
|
||||||
/* Various operations on varobj. */
|
/* Various operations on varobj. */
|
||||||
const struct lang_varobj_ops *la_varobj_ops;
|
const struct lang_varobj_ops *la_varobj_ops;
|
||||||
|
|
||||||
|
@ -540,6 +534,12 @@ struct language_defn : language_data
|
||||||
(tracker, mode, name_match_type, text, word, "", code);
|
(tracker, mode, name_match_type, text, word, "", code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Return an expression that can be used for a location
|
||||||
|
watchpoint. TYPE is a pointer type that points to the memory
|
||||||
|
to watch, and ADDR is the address of the watched memory. */
|
||||||
|
virtual gdb::unique_xmalloc_ptr<char> watch_location_expression
|
||||||
|
(struct type *type, CORE_ADDR addr) const;
|
||||||
|
|
||||||
/* List of all known languages. */
|
/* List of all known languages. */
|
||||||
static const struct language_defn *languages[nr_languages];
|
static const struct language_defn *languages[nr_languages];
|
||||||
|
|
||||||
|
|
|
@ -376,7 +376,6 @@ extern const struct language_data m2_language_data =
|
||||||
m2_op_print_tab, /* expression operators for printing */
|
m2_op_print_tab, /* expression operators for printing */
|
||||||
0, /* arrays are first-class (not c-style) */
|
0, /* arrays are first-class (not c-style) */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
m2_is_string_type_p,
|
m2_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -351,7 +351,6 @@ extern const struct language_data objc_language_data =
|
||||||
objc_op_print_tab, /* Expression operators for printing */
|
objc_op_print_tab, /* Expression operators for printing */
|
||||||
1, /* C-style arrays */
|
1, /* C-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -1030,7 +1030,6 @@ extern const struct language_data opencl_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
c_is_string_type_p,
|
c_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -407,7 +407,6 @@ extern const struct language_data pascal_language_data =
|
||||||
pascal_op_print_tab, /* expression operators for printing */
|
pascal_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
c_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
pascal_is_string_type_p,
|
pascal_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
|
|
@ -2006,20 +2006,6 @@ rust_lookup_symbol_nonlocal (const struct language_defn *langdef,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* la_watch_location_expression for Rust. */
|
|
||||||
|
|
||||||
static gdb::unique_xmalloc_ptr<char>
|
|
||||||
rust_watch_location_expression (struct type *type, CORE_ADDR addr)
|
|
||||||
{
|
|
||||||
type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
|
|
||||||
std::string name = type_to_string (type);
|
|
||||||
return gdb::unique_xmalloc_ptr<char>
|
|
||||||
(xstrprintf ("*(%s as *mut %s)", core_addr_to_string (addr),
|
|
||||||
name.c_str ()));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const struct exp_descriptor exp_descriptor_rust =
|
static const struct exp_descriptor exp_descriptor_rust =
|
||||||
{
|
{
|
||||||
rust_print_subexp,
|
rust_print_subexp,
|
||||||
|
@ -2062,7 +2048,6 @@ extern const struct language_data rust_language_data =
|
||||||
c_op_print_tab, /* expression operators for printing */
|
c_op_print_tab, /* expression operators for printing */
|
||||||
1, /* c-style arrays */
|
1, /* c-style arrays */
|
||||||
0, /* String lower bound */
|
0, /* String lower bound */
|
||||||
rust_watch_location_expression,
|
|
||||||
&default_varobj_ops,
|
&default_varobj_ops,
|
||||||
rust_is_string_type_p,
|
rust_is_string_type_p,
|
||||||
"{...}" /* la_struct_too_deep_ellipsis */
|
"{...}" /* la_struct_too_deep_ellipsis */
|
||||||
|
@ -2143,6 +2128,18 @@ public:
|
||||||
rust_internal_print_type (type, varstring, stream, show, level,
|
rust_internal_print_type (type, varstring, stream, show, level,
|
||||||
flags, false, &podata);
|
flags, false, &podata);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* See language.h. */
|
||||||
|
|
||||||
|
gdb::unique_xmalloc_ptr<char> watch_location_expression
|
||||||
|
(struct type *type, CORE_ADDR addr) const override
|
||||||
|
{
|
||||||
|
type = check_typedef (TYPE_TARGET_TYPE (check_typedef (type)));
|
||||||
|
std::string name = type_to_string (type);
|
||||||
|
return gdb::unique_xmalloc_ptr<char>
|
||||||
|
(xstrprintf ("*(%s as *mut %s)", core_addr_to_string (addr),
|
||||||
|
name.c_str ()));
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Single instance of the Rust language class. */
|
/* Single instance of the Rust language class. */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue