It seems possible that two runs of eg. gcc at different levels of
optimisation on the same files assigns different IDs to the same files.
To circumvent this, we use the file paths instead of file IDs.
Some entries in .dwarf_line might span 0 instructions, because a
following entry refers to exactly the same address. An enhancement might
be to make all these addresses equivalent in the matcher.