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: Sergio Durigan Junior <sergiodj at redhat dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: GDB Patches <gdb-patches at sourceware dot org>, Gabriel Krisman Bertazi <gabriel at krisman dot be>
- Date: Fri, 14 Nov 2014 18:18:22 -0500
- 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> <54662585 dot 5070205 at redhat dot com>
On Friday, November 14 2014, Pedro Alves wrote:
> 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.
Hm, thanks for this insight. I was already wondering the best way to
deal with this problem. I will give it a try later.
> 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 for the review. I fixed all the issues. I will concentrate on
the testcase now in order to get this patch in.
--
Sergio
GPG key ID: 0x65FC5E36
Please send encrypted e-mail if possible
http://sergiodj.net/