[PATCH 3/4] gas: sframe: handle .cfi_undefined

Indu Bhagat indu.bhagat@oracle.com
Wed May 14 22:55:22 GMT 2025


On 5/13/25 11:28 PM, Jan Beulich wrote:
> On 13.05.2025 22:27, Indu Bhagat wrote:
>> On 5/13/25 6:06 AM, Jan Beulich wrote:
>>> On 11.05.2025 09:35, Indu Bhagat wrote:
>>>> --- a/gas/gen-sframe.c
>>>> +++ b/gas/gen-sframe.c
>>>> @@ -1507,6 +1507,32 @@ sframe_xlate_do_cfi_escape (const struct sframe_xlate_ctx *xlate_ctx,
>>>>      return err;
>>>>    }
>>>>    
>>>> +/* Translate DW_CFA_undefined into SFrame context.
>>>> +
>>>> +   DW_CFA_undefined op implies that from now on the previous value of register
>>>> +   can’t be restored anymore.  In SFrame stack trace, we cannot represent such
>>>> +   a semantic.  So, we skip generating an SFrame FDE for this, when a register
>>>> +   of interest is used with DW_CFA_undefined.
>>>> +
>>>> +   Return SFRAME_XLATE_OK if success.  */
>>>> +
>>>> +static int
>>>> +sframe_xlate_do_cfi_undefined (const struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
>>>> +			       const struct cfi_insn_data *cfi_insn)
>>>> +{
>>>> +  if (cfi_insn->u.ri.reg == SFRAME_CFA_FP_REG
>>>> +      || cfi_insn->u.ri.reg == SFRAME_CFA_RA_REG
>>>> +      || cfi_insn->u.ri.reg == SFRAME_CFA_SP_REG)
>>>> +    {
>>>> +      as_warn (_("skipping SFrame FDE; %s reg %u in .cfi_undefined"),
>>> As the comment says, what you skip is generating an FDE; you don't skip any
>>> FDE itself afaict. I think this needs reflecting in the diagnostic, for it
>>> to not be confusing.
>> Can you elaborate - it is not clear what you mean. Yes, what we skip is
>> generating an SFrame FDE.  The diagnostic "skipping SFrame FDE" is meant
>> to indicate that there will be no SFrame FDE for that function/block.
> The message as it is tells me that there is an FDE (somewhere) which is
> being skipped. It does not tell me that my expectation of an FDE being
> generated is not met. "not emitting ..." or "no ... emitted: ..." or
> some such would be what I think makes things more clear.

I have slight preference to not change the warning messages now.  I am 
afraid users may have gotten used to grepping for "skipping SFrame FDE" 
over time.


More information about the Binutils mailing list