I On Tue, 5 Dec 2023, 15:47 Arnaldo Carvalho de Melo, <acme@xxxxxxxxxx> wrote: > > Em Tue, Dec 05, 2023 at 01:03:01PM +0000, Dimitri John Ledkov escreveu: > > Currently pahole warns and does nothing upon hitting > > DW_TAG_skeleton_unit as implemented at > > https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=0135ccd632796ab3aff65b7c99b374c4682c2bcf > > > > In elfutils, a while back a new API got added that aids with discovery > > and processing of such tags - > > https://sourceware.org/git/?p=elfutils.git;a=commitdiff;h=79f0e623dcde4b042bb72f636a2211d67d5c0ade > > > > It seems to me if pahole is ported from using dwarf_next_unit() to > > instead use dwarf_get_units() native support can be added for > > split-dwarf (dwo) files. > > That would be awesome! > > > I am trying to write such a port, but it is proving to be very > > difficult. > > I did some work on supporting split-dwarf months ago, but got > sidetracked with other work, BTF related and then the code bitrotted, I > have to go back looking at it to swap back the details into my brain: > > https://git.kernel.org/pub/scm/devel/pahole/pahole.git/log/?h=alt_dwarf > > The patches after: > > 45c044860c2abce7 dwarf_loader: Sync with LINUX_ELFNOTE_LTO_INFO macro from kernel > > Are the ones to suport alt dwarf. I will read into those thanks. > > > I am entirely unfamiliar with neither pahole nor libdw nor > > the dwarf file format. Thus it is very confusing when both pahole and > > dwarf library use very similar type names and structs. For example > > libdw has struct Dwarf_CU and pahole has unrelated dwarf_cu struct. > > > What are the differences between dwarf_nextcu(), dwarf_next_unit(), > > dwarf_get_units() and when should one use each one of them? (or nest > > them?) > > > Is a port of https://git.kernel.org/pub/scm/devel/pahole/pahole.git/tree/dwarf_loader.c?id=0135ccd632796ab3aff65b7c99b374c4682c2bcf > > to use dwarf_get_units() a right approach and would be welcomed? > > Yes, we need to support DWARF5 fully. ack > > > Is anyone else interested in providing any help, or guidance? > > I'm interested, and I think if Mark could help it would be great as > well. I have something that sort of works, but then like aboarts with invalid free's on exit - which the purist in me cares, but not sure if it is of practical value or not. And eu-readelf code also mentions that it deliberary leaks memory, because life is hard. I will try to address or warn about memory leaks to see if stuff works, and post and RFC. Regards, Dimitri.