This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Eliminate -var-create error for optzd ptr to struct
- From: Don Breazeal <donb at codesourcery dot com>
- To: Yao Qi <qiyaoltc at gmail dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>, "palves at redhat dot com" <palves at redhat dot com>
- Date: Wed, 6 Apr 2016 14:41:30 -0700
- Subject: Re: [PATCH] Eliminate -var-create error for optzd ptr to struct
- Authentication-results: sourceware.org; auth=none
- References: <1459888769-18875-1-git-send-email-donb at codesourcery dot com> <86lh4rm7kq dot fsf at gmail dot com>
On 4/6/2016 2:04 AM, Yao Qi wrote:
> Don Breazeal <donb@codesourcery.com> writes:
>
>>> Please don't. A RETURN_MASK_ALL swallows Ctrl-C/QUIT, and that's almost
>>> always a bug. The cases you mention translate a QUIT to a python/scheme
>>> exception, which is not the same as just swallowing the exception.
>>
>> Patch below changes that back. Pedro, thanks for clarifying.
>>
>
> No, it doesn't.
>
>> @@ -1433,7 +1434,17 @@ value_optimized_out (struct value *value)
>> /* We can only know if a value is optimized out once we have tried to
>> fetch it. */
>> if (VEC_empty (range_s, value->optimized_out) && value->lazy)
>> - value_fetch_lazy (value);
>> + {
>> + TRY
>> + {
>> + value_fetch_lazy (value);
>> + }
>> + CATCH (ex, RETURN_MASK_ALL)
>
> It should be RETURN_MASK_ERROR.
Sorry about that.
/me shakes head at self for goofing up the easy stuff.
>
>> + {
>> + /* Fall back to checking value->optimized_out. */
>> + }
>> + END_CATCH
>> + }
>
> Otherwise, patch is good to me.
>
Thanks Yao. This is now corrected and pushed in.
Question: in light of Pedro's comments regarding
gdbscm_value_optimized_out_p and valpy_get_is_optimized_out:
> A RETURN_MASK_ALL swallows Ctrl-C/QUIT, and that's almost
> always a bug. The cases you mention translate a QUIT to
> a python/scheme exception, which is not the same as just
> swallowing the exception.
Would you still like for me to follow up with a patch to remove the
TRY/CATCH blocks around the calls to value_optimized_out in those two
functions? Or do we want to leave it as-is so that the QUIT handling
remains unchanged?
Thanks
--Don