[PATCH 2/3] Adjust calls for setting "catch syscall" information
Sergio Durigan Junior
sergiodj@redhat.com
Fri Nov 14 23:18:00 GMT 2014
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/
More information about the Gdb-patches
mailing list