aboutsummaryrefslogtreecommitdiff
path: root/gdb/probe.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2013-12-02 12:13:29 -0700
committerTom Tromey <tromey@redhat.com>2013-12-06 08:57:55 -0700
commit37fbcad0beb1a512efb5bc26071df5c12b5408cd (patch)
tree07f352feaeee97e1852aeeae25640bca8d4d8cd2 /gdb/probe.c
parent16b5a7cbaee2764f3e1be6772dbe1156c28daf1d (diff)
downloadgdb-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/probe.c')
-rw-r--r--gdb/probe.c33
1 files changed, 3 insertions, 30 deletions
diff --git a/gdb/probe.c b/gdb/probe.c
index 4046701..c1e0111 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -616,16 +616,7 @@ info_probes_command (char *arg, int from_tty)
unsigned
get_probe_argument_count (struct probe *probe)
{
- const struct sym_probe_fns *probe_fns;
-
- gdb_assert (probe->objfile != NULL);
- gdb_assert (probe->objfile->sf != NULL);
-
- probe_fns = probe->objfile->sf->sym_probe_fns;
-
- gdb_assert (probe_fns != NULL);
-
- return probe_fns->sym_get_probe_argument_count (probe);
+ return probe->pops->get_probe_argument_count (probe);
}
/* See comments in probe.h. */
@@ -633,16 +624,7 @@ get_probe_argument_count (struct probe *probe)
int
can_evaluate_probe_arguments (struct probe *probe)
{
- const struct sym_probe_fns *probe_fns;
-
- gdb_assert (probe->objfile != NULL);
- gdb_assert (probe->objfile->sf != NULL);
-
- probe_fns = probe->objfile->sf->sym_probe_fns;
-
- gdb_assert (probe_fns != NULL);
-
- return probe_fns->can_evaluate_probe_arguments (probe);
+ return probe->pops->can_evaluate_probe_arguments (probe);
}
/* See comments in probe.h. */
@@ -650,16 +632,7 @@ can_evaluate_probe_arguments (struct probe *probe)
struct value *
evaluate_probe_argument (struct probe *probe, unsigned n)
{
- const struct sym_probe_fns *probe_fns;
-
- gdb_assert (probe->objfile != NULL);
- gdb_assert (probe->objfile->sf != NULL);
-
- probe_fns = probe->objfile->sf->sym_probe_fns;
-
- gdb_assert (probe_fns != NULL);
-
- return probe_fns->sym_evaluate_probe_argument (probe, n);
+ return probe->pops->evaluate_probe_argument (probe, n);
}
/* See comments in probe.h. */