On Wed, Nov 27, 2013 at 4:51 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Wed, Nov 27, 2013 at 04:31:48PM +0400, Alexey Samsonov wrote: >> LLVM emits just a DW_AT_low_pc ("base address" of a compilation unit). The >> standard tells that compilation unit entries "may have" attributes >> specifying the >> address range, but doesn't tell they are obligatory. >> DWARF consumers probably shouldn't rely on their presence. > > DWARF is generally full of may have and almost no must have. If the > DWARF consumer crashes on absence of some attribute/die etc., that would > be of course a consumer's fault. But not being able to symbolize something > because the provided DWARF info omits important stuff is not wrong.
Ok, I agree to call it "missing feature" instead of "bug" =) > BTW, libbacktrace also uses symbol table (and for backtrace_syminfo > uses that exclusively), so even if it can't symbolize using DWARF info, > it should at least symbolize using symbol table (of course inlining info > isn't available in that case, nor tail call frames (but libbacktrace doesn't > support those yet, only GDB does so far)). Yes, symbol table symbolization works for me (it has no file/line info, of course). -- Alexey Samsonov, MSK