-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
win64: lightning fas-traces (ref #9796)
use the windows C++ stack unwinder, instead of dbghelp, to generate backtraces it is observed to be much faster, although we then need to manually handle the case where we have a function without SEH info (such as sys.dll functions on llvm3.3) by assuming they have frame-pointer optimization turned off (aka they have a RBP-based stack frame chain)
- Loading branch information
Showing
1 changed file
with
59 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7e95d09
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems a little risky to push directly to master when we've got AppVeyor setup to test on Windows, no?
7e95d09
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
dunno. we don't really test for how long this operation takes. and while this hit lots of lines of code, it only affects one platform (modulo any typos in creating the
#ifdef
statements). i had already made more than half of the changes to switch to the c++ unwinder previously without really realizing it. this just changes the function being used to interpret the results. apparently each of those replacements was good for a factor of 10 improvement in unwinder performance.