डिबगिंग के लिए Go में सभी goroutines का stacktrace कैसे प्राप्त करें
नमस्ते! मैं Go में एक मल्टीथ्रेडेड एप्लिकेशन लिख रहा हूँ जो बहुत सारी goroutines का उपयोग करता है। किसी बिंदु पर प्रोग्राम अस्थिर रूप से काम करना शुरू कर देता है — कभी हैंग हो जाता है, कभी अजीब त्रुटियाँ देता है। मुझे संदेह है कि समस्या deadlock (आपसी अवरोध) या goroutine लीक (जब वे बनाई जाती हैं लेकिन समाप्त नहीं होतीं) में है।\n\nमुझे यह समझने की आवश्यकता है कि वर्तमान में कौन सी goroutines चल रही हैं और वे कोड की किन पंक्तियों पर रुकी हैं। मुझे पता है कि Java में `jstack` या `Thread.getAllStackTraces()` का उपयोग किया जा सकता है, लेकिन Go में मुझे इसका कोई विकल्प नहीं मिला।\n\nउदाहरण के लिए, मेरे पास ऐसा कोड है:\n\n```go\npackage main\n\nimport (\n "fmt"\n "sync"\n "time"\n)\n\nfunc main() {\n var wg sync.WaitGroup\n wg.Add(2)\n\n go func() {\n defer wg.Done()\n time.Sleep(10 * time.Second)\n fmt.Println("goroutine 1 done")\n```