Add support for xxx.so!xxx.so lines.
When seeing a line like:
#01 pc 0012ea14 /system/lib/libart.so!libart.so (offset 0x134000)
Treat it like this line instead:
#01 pc 0012ea14 /system/lib/libart.so
This will allow the symbolizer to properly figure out the line numbers.
Bug: 148657674
Test: Ran lines with xxx.so!xxx.so lines and verified that they decode.
Change-Id: Ieea516b46a00b414c740d0b4302a5cc73da2b0a8
diff --git a/scripts/stack_core.py b/scripts/stack_core.py
index 452d83b..977e4cb 100755
--- a/scripts/stack_core.py
+++ b/scripts/stack_core.py
@@ -374,9 +374,17 @@
if area.endswith(".apk"):
apk = area
else:
- index = area.rfind(".apk!")
+ index = area.rfind(".so!")
if index != -1:
- apk = area[0:index + 4]
+ # Sometimes we'll see something like:
+ # #01 pc abcd libart.so!libart.so (offset 0x134000)
+ # Remove everything after the ! and zero the offset value.
+ area = area[0:index + 3]
+ so_offset = 0
+ else:
+ index = area.rfind(".apk!")
+ if index != -1:
+ apk = area[0:index + 4]
if apk:
lib_name, lib = self.GetLibFromApk(apk, so_offset)
if not lib: