[Dwarf-discuss] Proposal to encode Changed Function Signatures in dwarf

Y Song ys114321@gmail.com
Thu Dec 4 20:58:39 GMT 2025


On Thu, Dec 4, 2025 at 11:24 AM David Blaikie <dblaikie@gmail.com> wrote:
>
>
>
> On Thu, Dec 4, 2025 at 11:12 AM Y Song <ys114321@gmail.com> wrote:
>>
>> On Thu, Dec 4, 2025 at 10:35 AM David Blaikie <dblaikie@gmail.com> wrote:
>> >
>> > OK, let's see if I understand this correctly:
>> >
>> > BPF lets users write functions and have calls to those functions injected at the start of some other function's implementation/when that other function is called.
>> >
>> > And those calls are injected without any kind of fixup/remapping between function arguments to the injected function and function arguments to the original.
>> >
>> > You're currently proposing adding the lowered signature to DWARF in some way, so that users can write the injected function in terms of the lowered signature, and BPF can validate that they match? (so the user has to write the injected function to match the lowered signature - and if optimizations change they have to change their code?)
>>
>> Currently we do not really validate BPF program arguments and rely on
>> users to check vmlinux BTF to find the signature.
>
>
> OK, so there's a human step here - you want the lowered/optimized signature in the DWARF, so a tool can print it out in a dump/report of some kind, that the user reads and then uses to write the callback with the correct lowered signature?

Yes. vmlinux BTF can be dumped as C style to show the correct lowered signature.

>
> That seems like a real stretch for DWARF... - some other tool could tell users what the lowered signature was & users could use that to determine what signature to write, perhaps? Or are there other uses/needs for the lowered signature?

I am not aware of other uses/needs for the lowered signature.
So you recommend another tool to find lowered signatures? This could
be an option? Any details?
Maybe encode a section like .debug_lowered_signature to encode those
functions with lowered signature? So this will have no impact for
dwarf and needed users
(e.g. pahole) can parse .debug_lowered_signature to get the lowered signatures?

Another option is from Jakub Jelinek to use function cloning to encode
lowered signatures. I have tried before but it made some user-visible
changes in lldb.
See https://lists.dwarfstd.org/pipermail/dwarf-discuss/2025-December/002766.html


More information about the Dwarf-discuss mailing list