[PATCH] [Windows] Implementing backtracing of self
Sean Silva
chisophugis at gmail.com
Wed Mar 4 20:54:44 PST 2015
Random thing I noticed:
_JUMP_BUFFER *JumpBuf = reinterpret_cast<__JUMP_BUFFER *>(Buffer);
The cast type has two underscores, but the variable type has one underscore
(__JUMP_BUFFER and _JUMP_BUFFER respectively). A comment would be nice.
-- Sean Silva
On Wed, Mar 4, 2015 at 4:37 PM, Zachary Turner <zturner at google.com> wrote:
> Hi majnemer, Bigcheese, rnk,
>
> llvm::sys::PrintBacktrace(FILE*) is supposed to print a backtrace
> of the current thread given the current PC. This function was
> unimplemented on Windows, and instead the only time we could
> print a backtrace was as the result of an exception through
> LLVMUnhandledExceptionFilter.
>
> This patch implements backtracing of self by using setjmp() to
> get the current values of the instruction pointer, frame pointer,
> and stack pointer, and then calling the same function already
> used by LLVM to print backtraces given the same information.
>
> The one difference is that with an exception, we have a full
> CONTEXT structure that we can pass to StackWalk64. MSDN documents
> that this is an optional field to StackWalk64, which only provides
> the function the ability to handle more situations. Testing shows
> that even without this function, the results are still good.
>
> http://reviews.llvm.org/D8068
>
> Files:
> lib/Support/Windows/Signals.inc
>
> EMAIL PREFERENCES
> http://reviews.llvm.org/settings/panel/emailpreferences/
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150304/01c3c2ab/attachment.html>
More information about the llvm-commits
mailing list