= Work done last week:
* Time spent on elfutils: ~80%
* Fix 10-byte LEB128
* Check that each CU is referenced only from one pub* section
* Match the way dwarflint reports offsets with the way elfutils
does it, so that it's easily possible to look up DIEs, CUs, etc. in
readelf output using their offsets.
* Check that the base address selection entry changes base address.
* Validate .debug_ranges. Detour via sequential reading that
turned out to be unviable. Check that .debug_loc and .debug_ranges
entries cover non-zero range (or are these legitimate artifacts?).
* Check that each rangelistptr is aligned to CU's address_size
* Do detailed validation of several location expression opcodes
- DW_OP_bra and DW_OP_skip: that they don't overrun or underrun
opcode buffer, and that their destination address is aligned with the
beginning of some DIE.
- DW_OP_const8[us]: that they don't appear in 32-bit CUs
- DW_OP_const[us], DW_OP_deref_size, DW_OP_plus_uconst: that in
32-bit CUs, their argument fits on 32-bit stack.
* Split into C and C++ part. Eventually, I may get around to
C++-ify all the C-only GNUisms I've sprinkled across dwaflint, but right
now having two "halves" (high-level C++, low-level C) makes more sense.
* Validate .debug_aranges overlaps, uncovered parts, etc.
Currently this is done in perhaps too generous a way: the code does
coverage analysis of ony AX section. Except if .init, .fini. or .plt
are not covered at all, it doesn't flag it as an error. Is it better to
assume that all "interesting" code will be in .text? It would simplify
the analysis code a little.
* Update the wiki with current status.
= Work scheduled for this week:
* Expected time spent on elfutils: 50-80%.
* .debug_ranges, .debug_loc range analysis (coverage, overlaps)
* I think I might actually get around to relocs this week.
* I didn't get around to go through anomalies we've found, leaving
it for next coding-quota overrun.
elfutils-devel mailing list