Allow fixup of apex directories.

For some reason, apex directory structure in the symbols directory
is not the same as on device.

This means that a directory on device like:

  /apex/com.android.art/lib64/libart.so

Is really found in symbols as:

  /apex/com.google.android.art/lib64/libart.so

Modify the script to look in both places for libraries.

Bug: 206463081

Test: Verified that libart.so in a backtrace now finds the symbols
Test: libart.so.
Change-Id: I67610e3a236765cc92397c70a769c4aa705f13ce
This commit is contained in:
Christopher Ferris
2022-04-22 14:37:56 -07:00
parent afdc6bc134
commit 598cc3607b

View File

@@ -343,6 +343,15 @@ class TraceConverter:
if os.path.isfile(symbol_dir + lib):
return lib
# Try and rewrite any apex files if not found in symbols.
# For some reason, the directory in symbols does not match
# the path on system.
# The path is com.android.<directory> on device, but
# com.google.android.<directory> in symbols.
new_lib = lib.replace("/com.android.", "/com.google.android.")
if os.path.isfile(symbol_dir + new_lib):
return new_lib
# When using atest, test paths are different between the out/ directory
# and device. Apply fixups.
if not lib.startswith("/data/local/tests/") and not lib.startswith("/data/local/tmp/"):