Add debug fission support.

This added debug fission support.
It tries to find the dwp file from the debug dir /usr/lib/debug/*/debug
and read symbols from them.

Most of this patch comes from
https://critique.corp.google.com/#review/52048295
and some fixes after that.
The elf_reader.cc comes from TOT google code. I just
removed some google dependency.

Current problems from this patch
1: Some type mismatch: from uint8_t * to char *.
2: Some hack to find the .dwp file. (replace .debug with .dwp)

BUG=chromium:604440
R=dehao@google.com, ivanpe@chromium.org

Review URL: https://codereview.chromium.org/1884283002 .
This commit is contained in:
Yunlian Jiang 2016-05-04 11:09:44 -07:00
parent b5712766f6
commit 764c21f752
12 changed files with 2296 additions and 172 deletions

View file

@ -288,7 +288,8 @@ bool LoadDwarf(const string& dwarf_filename,
// Make a Dwarf2Handler that drives the DIEHandler.
dwarf2reader::DIEDispatcher die_dispatcher(&root_handler);
// Make a DWARF parser for the compilation unit at OFFSET.
dwarf2reader::CompilationUnit reader(file_context.section_map(),
dwarf2reader::CompilationUnit reader(dwarf_filename,
file_context.section_map(),
offset,
&byte_reader,
&die_dispatcher);