diff options
author | Tom Tromey <tromey@redhat.com> | 2013-12-02 12:13:29 -0700 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2013-12-06 08:57:55 -0700 |
commit | 37fbcad0beb1a512efb5bc26071df5c12b5408cd (patch) | |
tree | 07f352feaeee97e1852aeeae25640bca8d4d8cd2 /gdb/stap-probe.c | |
parent | 16b5a7cbaee2764f3e1be6772dbe1156c28daf1d (diff) | |
download | gdb-37fbcad0beb1a512efb5bc26071df5c12b5408cd.zip gdb-37fbcad0beb1a512efb5bc26071df5c12b5408cd.tar.gz gdb-37fbcad0beb1a512efb5bc26071df5c12b5408cd.tar.bz2 |
remove some sym_probe_fns methods
While looking into the probe API, it seemed to me that there were a
number of methods in sym_probe_fns that were not needed. This patch
removes them.
Specifically, it seems to me that sym_probe_fns ought to be concerned
with the API for constructing the probes. Any method relating to some
aspect of an individual probe can be handled via the probe's own
vtable. That is, the double indirection here doesn't seem useful --
it certainly isn't in fact used, but also I couldn't think of a
potential use.
2013-12-06 Tom Tromey <tromey@redhat.com>
* break-catch-throw.c (fetch_probe_arguments): Use
get_probe_argument_count and evaluate_probe_argument.
* elfread.c (elf_get_probe_argument_count)
(elf_can_evaluate_probe_arguments, elf_evaluate_probe_argument)
(elf_compile_to_ax): Remove.
(elf_probe_fns): Update.
* probe.c (get_probe_argument_count, can_evaluate_probe_arguments)
(evaluate_probe_argument): Call method on probe, not via sym
functions.
* stap-probe.c (compute_probe_arg): Use get_probe_argument_count,
evaluate_probe_argument.
(compile_probe_arg): Use get_probe_argument_count. Call method on
probe, not via sym functions.
* symfile-debug.c (debug_sym_get_probe_argument_count)
(debug_can_evaluate_probe_arguments)
(debug_sym_evaluate_probe_argument, debug_sym_compile_to_ax):
Remove.
(debug_sym_probe_fns): Remove.
* symfile.h (struct sym_probe_fns) <sym_get_probe_argument_count,
can_evaluate_probe_arguments, sym_evaluate_probe_argument,
sym_compile_to_ax>: Remove fields.
Diffstat (limited to 'gdb/stap-probe.c')
-rw-r--r-- | gdb/stap-probe.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c index a734793..e09d5d6 100644 --- a/gdb/stap-probe.c +++ b/gdb/stap-probe.c @@ -1177,13 +1177,7 @@ compute_probe_arg (struct gdbarch *arch, struct internalvar *ivar, if (pc_probe == NULL) error (_("No SystemTap probe at PC %s"), core_addr_to_string (pc)); - gdb_assert (pc_probe->objfile != NULL); - gdb_assert (pc_probe->objfile->sf != NULL); - gdb_assert (pc_probe->objfile->sf->sym_probe_fns != NULL); - - pc_probe_fns = pc_probe->objfile->sf->sym_probe_fns; - - n_args = pc_probe_fns->sym_get_probe_argument_count (pc_probe); + n_args = get_probe_argument_count (pc_probe); if (sel == -1) return value_from_longest (builtin_type (arch)->builtin_int, n_args); @@ -1191,7 +1185,7 @@ compute_probe_arg (struct gdbarch *arch, struct internalvar *ivar, error (_("Invalid probe argument %d -- probe has %u arguments available"), sel, n_args); - return pc_probe_fns->sym_evaluate_probe_argument (pc_probe, sel); + return evaluate_probe_argument (pc_probe, sel); } /* This is called to compile one of the $_probe_arg* convenience @@ -1214,13 +1208,7 @@ compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr, if (pc_probe == NULL) error (_("No SystemTap probe at PC %s"), core_addr_to_string (pc)); - gdb_assert (pc_probe->objfile != NULL); - gdb_assert (pc_probe->objfile->sf != NULL); - gdb_assert (pc_probe->objfile->sf->sym_probe_fns != NULL); - - pc_probe_fns = pc_probe->objfile->sf->sym_probe_fns; - - n_args = pc_probe_fns->sym_get_probe_argument_count (pc_probe); + n_args = get_probe_argument_count (pc_probe); if (sel == -1) { @@ -1235,7 +1223,7 @@ compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr, error (_("Invalid probe argument %d -- probe has %d arguments available"), sel, n_args); - pc_probe_fns->sym_compile_to_ax (pc_probe, expr, value, sel); + pc_probe->pops->compile_to_ax (pc_probe, expr, value, sel); } |