On Wed, Mar 10, 2021 at 2:31 PM Michael Eager <ea...@eagercon.com> wrote:
> On 3/10/21 1:28 PM, David Blaikie wrote: > > On Wed, Mar 10, 2021 at 1:21 PM Cary Coutant <ccout...@gmail.com > > <mailto:ccout...@gmail.com>> wrote: > > > > > Speculation beyond the original question: > > > Given that it's a pretty common/core feature of a debugger to > > call functions, perhaps a start would be some way for the producer > > to communicate, via DWARF, that it has changed the ABI of a function > > and so the consumer should not try to synthesize calls to it. > > Providing much more functionality than that I think will amount to > > encoding the ad-hoc ABIs that compilers create in these situations > > (possible, but a fairly non-trivial proposal/enhancement to DWARF) > > > > I believe that's what DW_AT_calling_convention and DW_CC_nocall are > > for (Section 3.3.1.1). > > > > > > Oh, sweet - yep, that looks like the ticket indeed. > > > > "If the value of the calling convention attribute is the constant > > DW_CC_nocall, the subroutine does not obey standard calling conventions, > > and it may not be safe for the debugger to call this subroutine." > > All that says is that you can't call the function. It doesn't > describe how to call functions with non-ABI calling conventions. > Yep, but as I was saying, it seems like a minimum that - since we can't describe how to call non-ABI-conforming functions, the least we could do is flag them so the DWARF consumer can differentiate and not accidentally call functions in a way that would produce problems. So this'd at least address outright bugs/bogus behavior in DWARF consumers, instead of calling a function expecting to use the ABI, they could tell the user that that function can't be called. but, yeah, the bigger puzzle is still unsolved, if consumers want to be able to call such functions it'll take a fairly complicated/expensive proposal, I expect - Dave
_______________________________________________ Dwarf-Discuss mailing list Dwarf-Discuss@lists.dwarfstd.org http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org