As was suggested in comments for D33122,
this patch reimplements .gdb_index in more natural (probably) way.
Details
Diff Detail
Event Timeline
Overall, this patch is a bit too scarce of comments. You want to keep it readable for those who don't know what the code is intended to do.
ELF/GdbIndex.h | ||
---|---|---|
54–55 | uint64_t? | |
63 | There seems a better name than FileGdbIndexData. This represent a chunk of data you read from a DWARF section, right? | |
ELF/SyntheticSections.cpp | ||
1758–1800 | getInfo -> getDebugInfo | |
1772–1774 | Please write in a more natural way. for (InputSection *Sec : V) InputData.push_back(readDwarf(Sec)); | |
1794–1795 | When you bitwise-or some values, you usually want to write values from MSB to LSB. | |
1802 | This should return FileGdbIndexData. (In general, you want to avoid mutating a object passed as a reference if writing in a more functional way is doable.) | |
1825–1829 | This does not "find" anything. It computes. get, compute or calculate are good choices. | |
1832 | Addr -> Address | |
ELF/SyntheticSections.h | ||
519–524 | IndexData is not a good variable name. |
- Addressed review comments, added more comments.
ELF/GdbIndex.h | ||
---|---|---|
54–55 | Yes, fixed. | |
63 | That is goes from few debug sections of a object, so I used "File" word. I was thinking about "all data required for bulding gdb index extracted from object file". Would you prefer something like "GdbIndexDataChunk" ? | |
ELF/SyntheticSections.cpp | ||
1758–1800 | Done. | |
1772–1774 | Done. | |
1794–1795 | Fixed in commit of D33551 patch. | |
1802 | Done. | |
1825–1829 | Ok. FWIW that confusion comes from my native language. Where I can say "find dog in the garden" or "given x = 4 * t, find x if t == 3" and that word "find" would be the same. | |
1832 | Done. | |
ELF/SyntheticSections.h | ||
519–524 | Renamed. |
ELF/SyntheticSections.h | ||
---|---|---|
512–514 | I was just mean that it is also an area: "A mapped index consists of several areas, laid out in order: ... 5. The symbol table. This is an open-addressed hash table." Because "is an hash table" itself sounds like some container for something else for me. |
uint64_t?