cppunittests do not look up breakpad symbols for logged stack traces

ASSIGNED
Assigned to

Status

Testing
General
ASSIGNED
2 years ago
10 months ago

People

(Reporter: aklotz, Assigned: aklotz, NeedInfo)

Tracking

Trunk
Unspecified
Windows
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

I'm seeing situations like this:
https://treeherder.mozilla.org/logviewer.html#?job_id=3036257&repo=mozilla-central#L5518

We've hit an assertion but the logged call stack is of limited utility (without a lot of tedious manual intervention) due to lack of symbolication. We have the breakpad symbols for the build, but MozDescribeCodeAddress uses debughlp which groks pdb. If pdbs aren't around, we're not going to get much out of it.

I'm not sure what the best way forward is. Does breakpad have some kind of facility to act as a MS symbol server? Or do we need to add breakpad .sym parsing to MozDescribeCodeAddress?
(In reply to Aaron Klotz [:aklotz] (please use needinfo) from comment #0)
> I'm not sure what the best way forward is. Does breakpad have some kind of
> facility to act as a MS symbol server? Or do we need to add breakpad .sym
> parsing to MozDescribeCodeAddress?
Flags: needinfo?(ted)
(This also makes debugging in mozharness test environments more difficult, so I'd suggest that a symbol server option is probably more preferable than just modifying MozDescribeCodeAddress).
Our other harnesses just post-process assertion stacks using https://dxr.mozilla.org/mozilla-central/source/tools/rb/fix_stack_using_bpsyms.py, like:
https://dxr.mozilla.org/mozilla-central/rev/6020a4cb41a77a09484c24a5875bb221714c0e6a/testing/mochitest/runtests.py#2525

We should just add that same code to the C++ unittest harness:
https://dxr.mozilla.org/mozilla-central/source/testing/runcppunittests.py
Flags: needinfo?(ted)
Component: XPCOM → General
Product: Core → Testing
Version: 43 Branch → Trunk
Summary: nsTraceRefcnt::WalkTheStack output is not useful on Windows without pdbs → cppunittests do not look up breakpad symbols for logged stack traces
Created attachment 8709133 [details] [diff] [review]
Patch

Locally on mach and on try by looking at the stacks in the assertions on this try push:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=75bf5d41f88e
Assignee: nobody → aklotz
Status: NEW → ASSIGNED
Attachment #8709133 - Flags: review?(ted)
Comment on attachment 8709133 [details] [diff] [review]
Patch

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

Thanks for fixing this!
Attachment #8709133 - Flags: review?(ted) → review+

Comment 6

2 years ago
https://hg.mozilla.org/integration/fx-team/rev/c6617c4a27b4
Backed out in https://hg.mozilla.org/integration/fx-team/rev/aeacd77c05b5 for android cpp test failures:
https://treeherder.mozilla.org/logviewer.html#?job_id=6917684&repo=fx-team
Flags: needinfo?(aklotz)
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9d293233ade5
https://treeherder.mozilla.org/#/jobs?repo=try&revision=49cf7894832c
https://hg.mozilla.org/integration/mozilla-inbound/rev/6c32452df00e86d86e65b5097ea253f488816067
Bug 1238305: Modify cppunittests to look up breakpad symbols for logged stack traces; r=ted

Comment 11

10 months ago
I had to back this out for cpp test failures (this time on Windows debug) like https://public-artifacts.taskcluster.net/dsz6T2p6S-KvcVrDdNySaw/0/public/logs/live_backing.log

https://hg.mozilla.org/integration/mozilla-inbound/rev/01927ad414ea0925f976b191c2db41a0d0152ae9
You need to log in before you can comment on or make changes to this bug.