Avatar ·

C++ प्रोग्राम क्रैश होने पर स्वचालित रूप से स्टैक ट्रेस (stacktrace) कैसे प्राप्त करें?

सभी को नमस्ते! मैं Linux पर GCC कंपाइलर के साथ C++ में लिख रहा हूँ, और मुझे लगातार मुश्किल से पकड़ में आने वाले बग्स को डीबग करने में समस्या हो रही है। प्रोग्राम segmentation fault के साथ क्रैश होता है, लेकिन मैं समझ नहीं पा रहा हूँ कि यह वास्तव में कहाँ हो रहा है, क्योंकि क्रैश कभी-कभी और यादृच्छिक स्थानों पर होता है। मैं पहले से ही assert का उपयोग कर रहा हूँ, लेकिन जब बग मेमोरी करप्शन या बफर ओवरफ्लो से संबंधित होता है तो वे मदद नहीं करते। मैं चाहता हूँ कि किसी भी क्रैश (SIGSEGV, SIGABRT, SIGFPE आदि) पर प्रोग्राम स्वचालित रूप से फ़ंक्शन नामों, फ़ाइलों और लाइन नंबरों के साथ पूरा स्टैक ट्रेस आउटपुट करे। यहाँ मेरे कोड का एक उदाहरण है जो क्रैश होता है: ```cpp #include #include void dangerous_function(int* ptr) { *ptr = 42; // यहाँ segfault हो सकता है अगर ptr == nullptr } int main() { std::vector vec(10); ```