If you write a wrapper, please look at the err2-package
<https://github.com/lainio/err2>. It's an error-handling package, but we
needed to build a panic-safe system with automatic stack tracing. Traces
are context optimized as well. Here's a playground demo
<https://goplay.tools/snippet/6F3OhyqJLhj>.
You add the following one-liners to your goroutines, and that's it.
go func() {
*defer err2.CatchTrace(func(err error) {})*
var b []byte
b[1] = 0
}()
On Monday, May 30, 2022 at 6:11:47 PM UTC+3 [email protected] wrote:
> Yes, I was asking about a generic handler.
>
> I am thinking of writing a wrapper function which takes a function and
> spuns up a goroutine with the above mentioned defer function by default.
>
> On Sat, May 28, 2022 at 1:27 AM 'Sean Liao' via golang-nuts <
> [email protected]> wrote:
>
>> I believe this is asking for a single handler that will apply to all
>> goroutines, to which the answer is no such feature exists
>>
>> - sean
>>
>> On Sat, May 28, 2022, 03:09 Ian Lance Taylor <[email protected]> wrote:
>>
>>> On Fri, May 27, 2022 at 10:42 AM Aggarwal Sre <[email protected]>
>>> wrote:
>>> >
>>> > Is there a recommended pattern besides adding a defer call ( with
>>> recover call, to collect debug stack trace) to each goroutine, for
>>> collecting a stack trace when a golang is crashing due to any sort of panic.
>>> >
>>> > In other words, is there a way to register an uber handler ( probably
>>> using OS signals) at the main function level, to indicate that a golang
>>> program crashed and stacktrace to clearly specify where exactly?
>>>
>>> A panic handle is run at the bottom of the stack. If you write this:
>>>
>>> defer func() {
>>> if recover() != nil {
>>> fmt.Printf("%s", debug.Stack())
>>> }
>>> }()
>>>
>>> in your main function, it will print a stack trace showing the point
>>> of the panic.
>>>
>>> Ian
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "golang-nuts" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/golang-nuts/CAOyqgcV4d9HxDbdp_in95j6aKFF_m%2BN_hFdeyUMuMOWRt5%2B6dw%40mail.gmail.com
>>> .
>>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "golang-nuts" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>>
> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/golang-nuts/CAGabyPoRyv63ztmyrAGkuQ4u8Dcqffo4dUVo6H%3DczLU7%3DvsVcw%40mail.gmail.com
>>
>> <https://groups.google.com/d/msgid/golang-nuts/CAGabyPoRyv63ztmyrAGkuQ4u8Dcqffo4dUVo6H%3DczLU7%3DvsVcw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/golang-nuts/d7987acf-099b-4048-b38a-dcd01db0da47n%40googlegroups.com.