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 v1] Intel(R) MPX - Bound violation handling.


On 12/14/2015 05:43 PM, Tedeschi, Walfred wrote:
> Joel and Pedro,
> 
> Thanks a lot for your feedback!
> 
> I Could address most of the comments in here. 
> An important one is still missing, namely this one:
> 
>> +{
>> +  long si_code;
>> +  struct regcache *regcache = get_current_regcache ();
>> +  struct gdbarch *gdbarch = get_regcache_arch (regcache);
>> +
>> +  set_running (user_visible_resume_ptid (1), 0);
> 
> This is the part that _really_ concerns me, not necessary because I think it's wrong (although, it is a big red flag for me), but because I don't understand why it's needed, and how it will affect things.
> (From Joel)
>> +  si_code = parse_and_eval_long ("$_siginfo.si_code\n");
> 
> During the debugging time I understood that inferior was stopped. Gdb is that was in the process to determine in which state the inferior was.
> In this sense I set the flag at this point to allow for the evaluation.

Where is the error thrown that required brute-forcing set_running away?
Can we try to find some other way to handle this?  E.g., use something a bit lower
level than parse_and_eval_long that bypasses the error?  E.g., start from
lookup_internalvar and then use type/value manipulation routines?

Thanks,
Pedro Alves

> 
> I also looked in gdb for error handling while performing evaluations but did not find anything.
> I am considering that the way to proceed is to use TRY and CATCH blocks. Would you recommend that?
> 
> Thanks and regards,


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