On 2018-12-07 04:23, Nathan Froyd wrote:
> On Thu, Dec 6, 2018 at 6:10 PM Gijs Kruitbosch <
gijskru...@gmail.com> wrote:
>> Can someone elaborate on what this means for debugging on Windows, and
>> for our onboarding story on Windows?
> At least in terms of stepping through, examining variables, etc.,
> clang-cl is on par with MSVC. If there are specific, stop-the-presses
> cases that MSVC handles better than clang-cl...that's part of this
> thread's reason for existence: for people to speak up about issues.
>
> I can't speak to your debugging experience today, though; perhaps
> somebody with more experience on Windows can chime in. And the docs
> should be modernized, as you note. e10s and the relative inability of
> debuggers to handle multi-process debugging well means the debugging
> experience has gotten worse everywhere, and it would be worth thinking
> about ways that we could address e10s issues as well.
So far, debugging clang builds with MSVS (2017 community) works pretty
well with the patch for bug 1490743 applied.
I have mozilla.sln file of my own making with my own created projects
and one "startup" mozilla.vcproj that has the final firefox.exe as a run
path (with few args like -profile c:\testing-profile -no-remote). When
you F5 in VS then it will start and automatically attach.
You can use the solution/project files we generate at build time with
mach. I believe it's possible to run the final exe the same simple way
using the generated solution.
To automatically attach to child processes I use following MSVS extensions:
- Microsoft Child Process Debugging Power Tool (needs to be manually
enabled after installation)
- when there are issues (not all processes attached, e.g. after `build
binaries` and not a full build, as I've recently figured) I enable also
Spawned Process Catcher X (needs to be repacked for installation in
VS2017, I can provide a link)
That's it. MSVS is a good editor and debugger with a relatively well
working intelli-sense and symbol search, text search, refactoring.
Hope this helps.
-hb-
>
>> We're already making
>> people install MSVS to get the relevant Windows SDKs (manually, not
>> supported via ./mach bootstrap, and hopefully ticking the right boxes in
>> the installer or they have to do it again until they do win at
>> checkbox-golfing), and now we're telling them that although we just made
>> them download multiple gigs of stuff and install a pile of MS C++
>> compiler infrastructure on their machine, we can't actually use that and
>> they need to download *another* C++ compiler to actually build/debug
>> Firefox?
> clang-cl is installed as part of `mach boostrap`, and configure will
> automatically find clang-cl in the location bootstrap places it,
> without any fuss on the user's part.
>
> -Nathan