llvm-symbolizer understands both PDBs and DWARF, so it is more likely to
succeed at symbolization. If llvm-symbolizer is unavailable, we will
fall back to dbghelp. This also makes our crash traces more similar
between Windows and Linux.
Details
Diff Detail
Event Timeline
| lib/Support/Signals.cpp | ||
|---|---|---|
| 99–100 | Does createTemporaryFile not open the file in such a way that it has FILE_FLAG_DELETE_ON_CLOSE or the equivalent on unix platforms? | |
| 138 | os << format_hex() already behaves consistently. It's not a big deal, but it seems better to use type-safe formatting whenever possible, and I think format_hex would work just fine in that regard here. | |
| lib/Support/Windows/Signals.inc | ||
| 282–283 | Seems like this code could move after the #ifdef, no need to initialize anything if we end up not using Dbghelp anyway | |
| 289–292 | Why only when self-hosting? Wouldn't it be worth it to try llvm-symbolizer no matter what? | |
| lib/Support/Signals.cpp | ||
|---|---|---|
| 99–100 | Apparently not. =/ | |
| 138 | Cool, I switched to that. | |
| lib/Support/Windows/Signals.inc | ||
| 282–283 | StackWalk64 is part of dbghelp, and we need to initialize it first. | |
| 289–292 | Yeah, I'll get rid of that. My idea was to avoid changing behavior for a standard Windows build, but we might as well do it. | |
Does createTemporaryFile not open the file in such a way that it has FILE_FLAG_DELETE_ON_CLOSE or the equivalent on unix platforms?