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 sre.ag...@gmail.com 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 < > golan...@googlegroups.com> 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 <ia...@golang.org> wrote: >> >>> On Fri, May 27, 2022 at 10:42 AM Aggarwal Sre <sre.ag...@gmail.com> >>> 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 golang-nuts...@googlegroups.com. >>> 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 golang-nuts...@googlegroups.com. >> > 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 golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/d7987acf-099b-4048-b38a-dcd01db0da47n%40googlegroups.com.