From 9ee6a5acd5d83655e5af4a79c83f31dfce0a2a8e Mon Sep 17 00:00:00 2001 From: Gary Benson Date: Tue, 4 Jun 2013 12:50:21 +0000 Subject: 2013-06-04 Gary Benson * probe.h (get_probe_argument_count): New declaration. (evaluate_probe_argument): Likewise. * probe.c (get_probe_argument_count): New function. (evaluate_probe_argument): Likewise. (probe_safe_evaluate_at_pc): Use the above new functions. --- gdb/probe.c | 45 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 36 insertions(+), 9 deletions(-) (limited to 'gdb/probe.c') diff --git a/gdb/probe.c b/gdb/probe.c index 3086f4d..e650892 100644 --- a/gdb/probe.c +++ b/gdb/probe.c @@ -611,28 +611,55 @@ info_probes_command (char *arg, int from_tty) /* See comments in probe.h. */ +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); +} + +/* See comments in probe.h. */ + +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); +} + +/* See comments in probe.h. */ + struct value * probe_safe_evaluate_at_pc (struct frame_info *frame, unsigned n) { struct probe *probe; - const struct sym_probe_fns *probe_fns; unsigned n_args; probe = find_probe_by_pc (get_frame_pc (frame)); if (!probe) return NULL; - gdb_assert (probe->objfile != NULL); - gdb_assert (probe->objfile->sf != NULL); - gdb_assert (probe->objfile->sf->sym_probe_fns != NULL); - - probe_fns = probe->objfile->sf->sym_probe_fns; - n_args = probe_fns->sym_get_probe_argument_count (probe); - + n_args = get_probe_argument_count (probe); if (n >= n_args) return NULL; - return probe_fns->sym_evaluate_probe_argument (probe, n); + return evaluate_probe_argument (probe, n); } /* See comment in probe.h. */ -- cgit v1.1