[asan_symbolize] Teach `asan_symbolize.py` to symbolicate using a module map


[asan_symbolize] Teach asan_symbolize.py to symbolicate using a module map

The use case here is to be able get the UUIDs of the modules that need
to be symbolicated so that external plugins can see them. This
information can be extracted from ASan reports if the print_module_map
ASan option is enabled. Currently printing of the module map is only
implemented on Darwin and so this is effectively a Darwin only feature
right now.

The module map hooks into symbolization using the new plugin
infrastructure. A new hook in AsanSymbolizerPlugInProxy (and in
AsanSymbolizerPlugIn) is also provided to allow external plugins to hook
into the module look up process. This will allow external plugins to
look up modules with knowledge of their UUID.

The new plug-in is currently stored in the asan_symbolize.py script.
We could potentially move this into a separate file in the future (to
reduce clutter) if we can come up with a policy for where to search for
plugins that should always get loaded.


Reviewers: kubamracek, yln, samsonov, dvyukov, vitalybuka

Subscribers: #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D60531


delcypherApr 26 2019, 9:54 AM
Differential Revision
D60531: [asan_symbolize] Teach `asan_symbolize.py` to symbolicate using a module map