File index given line (libdw)

Mark Wielaard mark@klomp.org
Mon Jul 17 13:04:00 GMT 2017


On Mon, 2017-07-17 at 04:10 +0000, Sasha Da Rocha Pinheiro wrote:
> [Resending cause it seems it didn't go]

Probably because it had an HTML attachement.
The mailinglist rejects emails with HTML.

> You understood what I need when you said:
> "So you want to keep a vector with filenames for a particular CU. And
> then given Dwarf_Lines you want to associate each Dwarf_Line with a
> particular filename from that vector."
> 
> I agree with this "But currently that is an implementation detail. "
> But I don't see why this would change. Deliberately sort the files
> names so it doesn't match with the lines? I don't think so.

But newer versions of DWARF could have a different way of sharing the
source files or directory table between CUs. The issue is that the index
from the Dwarf_Lines only makes sense if you know which CU the
corresponding Dwarf_Files came from. So instead of providing the
relationship between a Dwarf_Line and a Dwarf_File I rather would not
depend on something indirect like the index into some Dwarf_Files table.
If we do provide it then I think we should be explicit about what it is
an index into. So maybe a function like:

extern int *
dwarf_line_files (Dwarf_Line *line, Dwarf_Files **files, size_t *idx);

Where files and idx are returned in a way that make them useful with
dwarf_filesrc. Would the above be helpful for your usecase?

Cheers,

Mark



More information about the Elfutils-devel mailing list