labath added a comment.

In D119009#3302354 <https://reviews.llvm.org/D119009#3302354>, @JDevlieghere 
wrote:

> I believe it's generally considered bad practice to install signal handlers 
> in a library. This is why the initialization currently happens in the driver. 
> If you look at other tools in LLVM you'll notice they do the same thing.
>
> Can we address this issue by (1) making sure we don't crash in lldbassert 
> when calling `PrintStackTrace` without having initialized the signal handlers 
> and (2) providing the ability to install the signal handlers through the SB 
> API (if that doesn't already exist) if the user of libLLDB wants this 
> functionality?

I think that's a very good approach to the problem.

That said, I want to add that, as far as I can tell, the windows-specific 
initialization is not actually an issue here. Loading a dll does not have the 
same global impact as installing a signal handler (if the dll is well-behaved, 
anyway). So, I can imagine a setup (though I don't know how it would work in 
detail) where where we initialize the windows-specific parts of this from 
within lldb, but avoid the parts which installs handlers on other platforms.

I guess it might be interesting to know how is this situation handled for other 
out-of-tree users of llvm libraries on windows (assuming we have any). Do they 
get this to work somehow, or is lldb the first one to want to print a backtrace 
in a non-fatal situation (the non-fatal lldbasserts are definitely... unique).

(I am assuming people won't notice the difference between a crash because the 
app hit a real assertion failure, or because it failed to print the backtrace 
of that failure, if they don't know that they should expect to see that 
backtrace.)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119009/new/

https://reviews.llvm.org/D119009

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to