The default bug view has changed. See this FAQ.

cppunittests do not look up breakpad symbols for logged stack traces

ASSIGNED
Assigned to

Status

Testing
General
ASSIGNED
a year ago
5 months ago

People

(Reporter: aklotz, Assigned: aklotz, NeedInfo)

Tracking

Trunk
Unspecified
Windows
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

(Assignee)

Description

a year ago
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?
(Assignee)

Comment 1

a year ago
(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)
(Assignee)

Comment 2

a year ago
(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)
(Assignee)

Updated

a year ago
Component: XPCOM → General
Product: Core → Testing
Version: 43 Branch → Trunk
(Assignee)

Updated

a year ago
Summary: nsTraceRefcnt::WalkTheStack output is not useful on Windows without pdbs → cppunittests do not look up breakpad symbols for logged stack traces
(Assignee)

Comment 4

a year ago
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

a year 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)
(Assignee)

Comment 8

5 months ago
https://treeherder.mozilla.org/#/jobs?repo=try&revision=9d293233ade5
(Assignee)

Comment 9

5 months ago
https://treeherder.mozilla.org/#/jobs?repo=try&revision=49cf7894832c
(Assignee)

Comment 10

5 months ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/6c32452df00e86d86e65b5097ea253f488816067
Bug 1238305: Modify cppunittests to look up breakpad symbols for logged stack traces; r=ted
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.