Hi - Generally looks fine, thanks a lot. A few nits:
- use of write(2) to put files onto disk is not quite right; write(2) can be partial, so you need a loop (or a macro wrapping a loop) - not sure I understand why the code worries about dots in or not in section names. Why not just pass them verbatim throughout the code base, and not worry about whether or not there's a dot? Does the ELF standard even require a dot? - not sure whether/why the I queries require a new _query_i view, as opposed to running the _query_d & _query_e views union'd together. I see an ORDER BY that's different here but not sure why bother; if anything, the server could prefer one or the other type, based on the same section-name heuristic as the client - don't really see a need for the X-DEBUGINFOD-SECTION response header, which simply echoes back the very same parameter the client just requested; the other X-DEBUGINFOD-* headers are novel metadata - re. verbose logging in the section vs non-section case, suggest just keeping the code simple (even if it makes the logs more verbose), i.e., not duplicating if (...) clog << STUFF else clog << STUFF; no biggie tho - the webapi docs in debuginfod.8 should document the new query type Otherwise lgtm. Lots of nice work. - FChE