Closed Bug 802103 Opened 12 years ago Closed 11 years ago

Breakpad stackwalking optimization: do symbol lookup directly from native debug symbols

Categories

(Toolkit :: Crash Reporting, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: ted, Assigned: ted)

References

Details

Currently Julian's patch for doing SPS unwinding using Breakpad is using the existing Breakpad symbol dumping classes to construct a symbol file in memory, and then using the existing symbol-parsing classes to built in-memory data structures that are used for unwinding.

This is pretty wasteful. If we implemented a new subclass of SourceLineResolverInterface that used the DWARF parsing classes directly to build its in-memory data structures, we could skip the serialization and parsing steps.

This is a fairly big chunk of the time spent running the unwinder, but it's also a fixed cost in that there's one symbol file per module and they only need to get loaded once.
Assignee: nobody → ted.mielczarek
I talked to Julian about this, but I'll update the bug as well. I implemented a Breakpad class to do this:
http://hg.mozilla.org/users/tmielczarek_mozilla.com/breakpad-local-symbols/

This implements LocalDebugInfoSymbolizer, which can be passed to MinidumpProcessor or a Stackwalker subclass directly and handles loading debug info from local libraries and feeding it to the Stackwalker. (There's also a minidump_stackwalk copy in that repo that uses it which I used for testing.) I've got patches in my mq that hook this up on top of Julian's patch in bug 779291, it all seems to work.
Julian rolled this into his patch in bug 779291, we'll track it there.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.