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
diff --git a/scripts/stack_core.py b/scripts/stack_core.py
index f601d5a..5a7b981 100755
--- a/scripts/stack_core.py
+++ b/scripts/stack_core.py
@@ -343,6 +343,15 @@
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/"):