Closed Bug 1031284 Opened 7 years ago Closed 7 years ago

Fix assertion failures for pseudostack unwinds using SPS+LUL

Categories

(Core :: Gecko Profiler, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla33

People

(Reporter: jseward, Assigned: jseward)

References

Details

Attachments

(1 file)

After applying the patch for bug 1022583, which enables LUL by
default on desktop linux, startups of debug builds done thusly

MOZ_PROFILER_MODE=pseudo ./ff-linux64-dbg/dist/bin/firefox-bin

quickly assert thusly
Assertion failure: !isJs(), at ../../dist/include/js/ProfilingStack.h:127

The failure stack (one of two) is

#0  js::ProfileEntry::stackAddress   js/public/ProfilingStack.h:127
#1  genProfileEntry           tools/profiler/BreakpadSampler.cpp:76
#2  genPseudoBacktraceEntries tools/profiler/BreakpadSampler.cpp:141
#3  populateBuffer            tools/profiler/BreakpadSampler.cpp:219

The failure happens because genProfileEntry calls entry.stackAddress()
without knowing whether the entry is a JS or CPP entry, and the same
for a call of entry.line().
Guard calls to entry.stackAddress()/line() with entry.isCpp().
Attachment #8447146 - Flags: review?(bgirard)
Attachment #8447146 - Flags: review?(bgirard) → review+
https://hg.mozilla.org/mozilla-central/rev/e8aa304c209b
Assignee: nobody → jseward
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla33
You need to log in before you can comment on or make changes to this bug.