This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 2/3] Adjust calls for setting "catch syscall" information
- From: Pedro Alves <palves at redhat dot com>
- To: Sergio Durigan Junior <sergiodj at redhat dot com>, GDB Patches <gdb-patches at sourceware dot org>
- Cc: Gabriel Krisman Bertazi <gabriel at krisman dot be>
- Date: Fri, 14 Nov 2014 15:53:41 +0000
- Subject: Re: [PATCH 2/3] Adjust calls for setting "catch syscall" information
- Authentication-results: sourceware.org; auth=none
- References: <1415837887-28888-1-git-send-email-sergiodj at redhat dot com> <1415837887-28888-3-git-send-email-sergiodj at redhat dot com>
On 11/13/2014 12:18 AM, Sergio Durigan Junior wrote:
> --- a/gdb/breakpoint.c
> +++ b/gdb/breakpoint.c
> @@ -8607,10 +8607,11 @@ print_it_catch_syscall (bpstat bs)
> ptid_t ptid;
> struct target_waitstatus last;
> struct syscall s;
> + struct gdbarch *gdbarch = target_gdbarch ();
I think this would better be bs->bp_location_at->gdbarch .
> @@ -8653,6 +8654,7 @@ print_one_catch_syscall (struct breakpoint *b,
> struct syscall_catchpoint *c = (struct syscall_catchpoint *) b;
> struct value_print_options opts;
> struct ui_out *uiout = current_uiout;
> + struct gdbarch *gdbarch = target_gdbarch ();
Here, we can use b->loc->gdbarch.
Later, to handle the case "catch syscall open" with multiple
inferiors of different archs, I think we'll end up with a
location for each inferior, or for each arch, and we'll iterate
over locations here. For now, I think we can assume there's only
one location.
Similarly for other places.
> @@ -15343,7 +15348,7 @@ static VEC (char_ptr) *
> catch_syscall_completer (struct cmd_list_element *cmd,
> const char *text, const char *word)
> {
> - const char **list = get_syscall_names ();
> + const char **list = get_syscall_names (target_gdbarch ());
> VEC (char_ptr) *retlist
> = (list == NULL) ? NULL : complete_on_enum (list, word, word);
This one is handling user input, so should be "get_current_arch ()":
/* Return "current" architecture. If the target is running, this is
the architecture of the selected frame. Otherwise, the "current"
architecture defaults to the target architecture.
This function should normally be called solely by the command
interpreter routines to determine the architecture to execute a
command in. */
struct gdbarch *
get_current_arch (void)
Thanks,
Pedro Alves