[HWASan] Try 'google' prefixed apex directories in symbolizer.

Google-signed apexes appear on Android build servers' symbol files as
being under /apex/com.google.android.<foo>/. In reality, the apexes are
always installed as /apex/com.android.<foo>/ (note the lack of
'google'). In order for local symbolization under hwasan_symbolize to
work correctly, we also try the 'google' directory.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D114919
This commit is contained in:
Mitch Phillips 2021-12-03 10:34:57 -08:00
parent e1d6306815
commit 572a0721a0
1 changed files with 5 additions and 0 deletions

View File

@ -84,6 +84,11 @@ class Symbolizer:
full_path = os.path.join(p, name)
if os.path.exists(full_path):
return full_path
apex_prefix = "apex/com.android."
if name.startswith(apex_prefix):
full_path = os.path.join(p, "apex/com.google.android." + name[len(apex_prefix):])
if os.path.exists(full_path):
return full_path
# Try stripping extra path components as the last resort.
for p in self.__binary_prefixes:
full_path = os.path.join(p, os.path.basename(name))