Closed Bug 885336 Opened 7 years ago Closed 7 years ago

Make SPS on Android work with MOZ_LINKER_EXTRACT=1

Categories

(Core :: Gecko Profiler, defect)

x86_64
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla25

People

(Reporter: jseward, Assigned: glandium)

Details

Attachments

(1 file, 2 obsolete files)

Currently SPS/Breakpad on Android only works for the non-MOZ_LINKER_EXTRACT
(default) mode.  That's OK for production use but defeats use of Valgrind
for Fennec for the profiler, since V currently requires MOZ_LINKER_EXTRACT=1
to work (basically at all).

The problem is that SPS requests faulty.lib to provide libxul/libmozalloc/libnss
from the .APK, but in unpack mode they are instead in $libdir/cache, and so
SPS fails to read any unwind information for those libraries, making native
unwinding unusable.
Attached patch Patch (obsolete) — Splinter Review
Attachment #765368 - Flags: review?(bgirard)
Comment on attachment 765368 [details] [diff] [review]
Patch

Review of attachment 765368 [details] [diff] [review]:
-----------------------------------------------------------------

faulty.lib ought to handle this itself. It should already, but if it doesn't, it's something to fix in faulty.lib. Not in the caller.
Attachment #765368 - Flags: review?(bgirard) → review-
(In reply to Mike Hommey (high latency until June 25) [:glandium] from comment #2)
> faulty.lib ought to handle this itself. It should already, but if it
> doesn't, it's something to fix in faulty.lib. Not in the caller.

Ok, but .. that would make it inconsistent with what's currently in 
local_debug_info_symbolizer.cc, no?  It already special-cases
the handling of libmozglue.so.
libmozglue.so is not loaded by faulty.lib, as it contains it.
Assignee: jseward → mh+mozilla
I think this will solve your issue.
Attachment #767049 - Flags: review?(jseward)
So .. I'm not clear whether the above patch just makes __dl_mmap work,
or whether it also fixes __dl_get_mappable_length.  I ask because with
it in place, I get this:

E/Profiler(30027): 2013-06-25 22:19:47: local_debug_info_symbolizer.cc:121: INFO: ReadSymbolData_APK: Unable to get size for ELF file '/data/app/org.mozilla.fennec-1.apk!/assets/libxul.so'

and the same for libmozalloc.so and libnss3.so.

so it kinda seems like __dl_get_mappable_length is failing.
Julian, can you test this patch?
Attachment #767049 - Attachment is obsolete: true
Attachment #767049 - Flags: review?(jseward)
Attachment #767636 - Flags: review?(nfroyd)
Attachment #767636 - Flags: review?(nfroyd) → review+
Attachment #765368 - Attachment is obsolete: true
https://hg.mozilla.org/mozilla-central/rev/c4abdcc3451c
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
You need to log in before you can comment on or make changes to this bug.