मेरे पास एक सी प्रोग्राम है जो एक अनंत पुनरावर्ती गंदगी में गहराई से उतरने के बाद सेग दोष करता है। GDB में प्रक्रिया को पीछे हटाना बेकार है क्योंकि कॉल स्टैक फ्रेम कम से कम 1000 फ़्रेम गहरा है, और दोहराया फ़ंक्शन कॉल चार सामान्य पुनरावर्ती फ़ंक्शन कॉल की श्रृंखला है (इसलिए ब्रेकप्वाइंट बेकार लगते हैं)। बार-बार कॉल करने के लिए बार-बार कॉल करने से चार फ़ंक्शन नाम, ओवर और ओवर पढ़ते हैं। यह मेरे साथ हुआ कि मैं 'अप' 'अप' 'अप' कर रहा हूं ... मुझे ऊंचा उठना पड़ेगा, इसलिए मैं देख सकता था कि यह पैटर्न पहले कहां से शुरू हुआ था, लेकिन ऐसा लगता है कि यह सबसे ऊपरी कॉल से शुरू करना अधिक कुशल होगा। स्टैक फ्रेम और इसके बजाय नीचे कदम, क्योंकि मेरा कूबड़ यह है कि अनंत पुनरावृत्ति प्रक्रिया में जल्दी शुरू होता है। अगर कॉल स्टैक में कुल एन फ्रेम थे, तो मुझे पता है कि मैं बस कर सकता था
gdb>> up N
स्टैक (Nth फ्रेम) के शीर्ष पर जाने के लिए, लेकिन समस्या यह है कि मुझे एन नहीं पता है। क्या कॉल स्टैक में फ़्रेम की कुल संख्या खोजने के लिए कोई कमांड है? या, क्या सबसे ऊपरी फ्रेम में कूदने के लिए एक अंतर्निहित अंतर्निहित GDB कमांड है? यह मेरे लिए हुआ कि सबसे ऊपरी फ्रेम मुख्य () फ़ंक्शन होनी चाहिए - क्या मैं उस ज्ञान का लाभ उठा सकता हूं जो सबसे ऊपर के फ्रेम पर पहुंच सकता है?