Closed Bug 1132529 Opened 11 years ago Closed 8 years ago

Symbolicate all C++ symbols when platform data is enabled

Categories

(DevTools :: Performance Tools (Profiler/Timeline), defect, P2)

defect

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: fitzgen, Unassigned)

References

Details

(Whiteboard: [devtools-platform])

Right now, you get a bunch of raw addresses. We should symbolicate all those. I don't know where we get the symbols from, though. (Don't think this needs to block bug 1075567, but it would sure be awesome to have)
Blocks: perf-tool-v2
See Also: perf-tool-v2
(In reply to Nick Fitzgerald [:fitzgen] from comment #0) > I don't know where we get the symbols from, though. It's tricky. For official builds (e.g. Nightlies) and Windows system libraries, we can get the symbols from the mozilla symbol server (symbolapi.mozilla.org, code is at https://github.com/vdjeric/Snappy-Symbolication-Server/ ). For try server builds, the symbols are in the directory that the try build came from. For locally-compiled builds and system libraries on Mac and Linux, the Gecko profiler addon uses the command line utilities atos on Mac and addr2line on Linux for symbolication. For locally-compiled builds on Windows, you currently have to do a "mach buildsymbols" build step and launch a local symbol server. For Android and B2G system libraries, the addon copies the libraries to the host machine and use the Android ARM versions of the command line tools addr2line and nm from the Android SDK.
(In reply to Markus Stange [:mstange] from comment #1) > (In reply to Nick Fitzgerald [:fitzgen] from comment #0) > > I don't know where we get the symbols from, though. > > It's tricky. For official builds (e.g. Nightlies) and Windows system > libraries, we can get the symbols from the mozilla symbol server > (symbolapi.mozilla.org, code is at > https://github.com/vdjeric/Snappy-Symbolication-Server/ ). For try server > builds, the symbols are in the directory that the try build came from. For > locally-compiled builds and system libraries on Mac and Linux, the Gecko > profiler addon uses the command line utilities atos on Mac and addr2line on > Linux for symbolication. For locally-compiled builds on Windows, you > currently have to do a "mach buildsymbols" build step and launch a local > symbol server. For Android and B2G system libraries, the addon copies the > libraries to the host machine and use the Android ARM versions of the > command line tools addr2line and nm from the Android SDK. And presumably the gecko profiler addon has already written this code and we can move it into toolkit and share it? At least for official builds? /me crosses fingers
No, the code is a giant security nightmare since it just forks a new system shell, hope the right binary are there and calls them.
Yeah, the addon code isn't something I'd be comfortable with just dropping into Firefox.
Dang. Well perhaps we can compromise and only symbolicate for official builds using the symbol server.
I like that idea.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
Bug 968510 is something completely different. Unduping. Bug 968510 is about JS functions that have names that follow the C++ mangling rules. This bug is about real C++ function addresses and symbolicating those to C++ function names.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Status: REOPENED → NEW
Thanks!
Not specifically blocking v2.
No longer blocks: perf-tool-v2
(In reply to Nick Fitzgerald [:fitzgen] from comment #5) > Dang. Well perhaps we can compromise and only symbolicate for official > builds using the symbol server. Perhaps we could have a pref for local builds to spawn a shell to use atos?
Please consider also handling symbolication of remote fennec/b2g devices. It is very painful right now with the profiler addon.
(In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #12) > Please consider also handling symbolication of remote fennec/b2g devices. It > is very painful right now with the profiler addon. This would happen at the server level, so it would also happen for fennec and b2g. However, it may take longer for b2g to upgrade to a recent enough gecko, but that is a different issue.
Whiteboard: [devtools-platform]
(In reply to Nick Fitzgerald [:fitzgen] [⏰PST; UTC-8] from comment #13) > (In reply to James Willcox (:snorp) (jwillcox@mozilla.com) from comment #12) > > Please consider also handling symbolication of remote fennec/b2g devices. It > > is very painful right now with the profiler addon. > > This would happen at the server level, so it would also happen for fennec > and b2g. However, it may take longer for b2g to upgrade to a recent enough > gecko, but that is a different issue. We would need to have some other stuff to do local builds. The Gecko Profiler add-on does this by locating the objdir and getting symbols from there.
Triaging. Filter on ADRENOCORTICOTROPIC (yes).
OS: Mac OS X → Unspecified
Priority: -- → P2
Hardware: x86 → Unspecified
Let's avoid symbolication for now in the DevTools workflow. The Gecko Profiler Add-on supports this and dumps out to the same perf.html interface.
Status: NEW → RESOLVED
Closed: 11 years ago8 years ago
Resolution: --- → WONTFIX
Product: Firefox → DevTools
You need to log in before you can comment on or make changes to this bug.