[lldb-dev] sharing code between lldb and AddressSanitizer

Benjamin Kramer benny.kra at googlemail.com
Tue Nov 29 23:08:51 PST 2011


On 30.11.2011, at 02:57, Kostya Serebryany <kcc at google.com> wrote:

Hello,

I am working on integrating AddressSanitizer (aka asan,
http://clang.llvm.org/docs/AddressSanitizer.html) run-time library with the
llvm compiler-rt.
Asan needs to symbolize PCs, i.e. given a value of a PC it needs to produce
the file name and the line number (if debug info is present).
Currently, this is achieved by printing the PCs as
/path/to/object/file+offset and filtering the output with a script which
uses addr2line/atos.
Ideally, symbolization should happen inside the process and should not
require post processing.

I would expect that lldb already has such functionality, right?
Somewhere in include/lldb/Symbol/Symtab.h?
Does it work on both Linux and Mac?
Do you think that it is possible/desirable to have this kind of code
sharing between lldb and asan?
Will that work with the current build system (where lldb and
compiler-rt/lib/asan are separate subprojects)?


I recently extracted the DWARF parsing that's necessary to get line numbers
from addresses out of lldb into LLVM. Take a look at llvm-dwarfdump and the
DebugInfo library. It requires relocations to be resolved upfront though,
so it won't work on Linux out of the box (DWARF doesn't use relocations on
OS X).

-Ben
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20111130/5bedf73f/attachment.html>


More information about the lldb-dev mailing list