This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/3] Adjust calls for setting "catch syscall" information


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]