investigate whether symbol files produced by clang-cl are comparable to MSVC ones

RESOLVED INCOMPLETE

Status

enhancement
RESOLVED INCOMPLETE
11 months ago
4 months ago

People

(Reporter: froydnj, Unassigned)

Tracking

3 Branch
All
Windows

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

11 months ago
This would be a good smoketest for whether the debugging experience with clang-cl is liable to be any good, and it would ensure that our crash reports with a clang-cl compiled browser would be reasonable as well.

Comment 1

11 months ago
You probably want to pass

      "-Xclang",
      "-mllvm",
      "-Xclang",
      "-instcombine-lower-dbg-declare=0",


before looking at this, else you'll likely get lots of 'value not available' in your dumps.
Seems like this ship has sailed at this point, eh?
Status: NEW → RESOLVED
Last Resolved: 8 months ago
Resolution: --- → INCOMPLETE
FWIW this was on my radar but I was deliberately waiting to see if anyone complained about debug quality before we applied this. I guess we can reopen if/when needed.
See https://sites.google.com/a/ocallahan.org/www/blog/ClangInstcombine.png.

Adding -instcombine-lower-dbg-declare=0 improved my coverage metric for local variables in libxul from 47% to 62%. That's a huge improvement. (See https://robert.ocallahan.org/2018/11/comparing-quality-of-debug-information.html for the metric methodology.)

According to the documentation for this option, it can lead to incorrect debuginfo, and I have no way of determining how often that happens. But Chrome is using this flag.
David, thoughts on enabling this for Firefox?
Flags: needinfo?(dmajor)
Given the potential downsides it's not an immediately obvious "let's do it". I would like to see someone demonstrate a real-world bug investigation where this flag made things better and didn't make things worse.
Flags: needinfo?(dmajor)
Version: Version 3 → 3 Branch
You need to log in before you can comment on or make changes to this bug.