2013-03-07 9 views
5

मेरे पास C++ में एक सर्वर है जो उत्पादन वातावरण में क्रैश हो रहा है जिसके लिए मुझे कोई सीधी पहुंच नहीं है। दुर्घटना एक विशाल कोर डंप ~ 34 जी उत्पन्न करता है जिसे मैं स्थानीय रूप से कॉपी नहीं कर सकता। मुझे कोर डंप का विश्लेषण करने की आवश्यकता है लेकिन यह नहीं पता कि इसे कॉपी किए बिना इसे कैसे किया जा सकता है। मैंने लक्ष्य पर gdbserver चलाने की कोशिश की लेकिन यह एक पैरामीटर के रूप में कोर फ़ाइल नहीं लेता है और मेजबान मशीन से दूरस्थ अनुप्रयोगों को चलाने के लिए केवल अच्छा लगता है। क्या ऐसा कोई तरीका है?gdb डीबग रिमोट कोर डंप

+0

उस आकार के डंप उत्पन्न करने वाले प्रोग्राम के लिए, क्या आपके पास इस मुद्दे को ऐप के एक विशिष्ट भाग को सीमित करने में मदद करने के लिए पहले से ही लॉगिंग तंत्र नहीं है? – didierc

+0

रिमोट मशीन में लॉग इन करने के लिए 'ssh' का उपयोग करें - यदि आपके पास' gdbserver' पहुंच है, तो मुझे उम्मीद है कि आप अधिकतर चीजें कर सकते हैं। –

+0

मैं रिमोट मशीन पर 'ssh' नहीं कर सकता लेकिन sys व्यवस्थापक से मेरे लिए 'gdbserver' जैसे कुछ चलाने के लिए कह सकता है लेकिन वह मूल फ़ाइल का विश्लेषण और डीबग नहीं कर सकता है। मैं एक और स्थायी समाधान के बारे में सोच रहा था जो भविष्य में काम करता है जब ऐसी चीजें होती हैं। और हमारे पास अभी तक लागू उचित लॉगिंग तंत्र नहीं है :( – user1444800

उत्तर

1

मुझे कोर डंप का विश्लेषण करने की आवश्यकता है लेकिन यह नहीं पता कि इसे कॉपी किए बिना इसे कैसे किया जा सकता है।

आप नहीं कर सकते। आपको कोर डंप प्राप्त करने की आवश्यकता होगी जहां आप जीडीबी चला सकते हैं।

मैं रिमोट मशीन पर ssh नहीं कर सकता लेकिन sys व्यवस्थापक से मेरे लिए gdbserver की तरह कुछ चलाने के लिए कह सकता है लेकिन वह मूल फ़ाइल का विश्लेषण और डीबग नहीं कर सकता है।

आपको कुछ भी विश्लेषण करने के लिए sysadmin की आवश्यकता नहीं है। आपको बस उसे जीडीबी कमांड की श्रृंखला चलाने के लिए कहने की जरूरत है, और आपको आउटपुट भेजना है। जैसे

where 
thread apply all where 
info registers 
disas 

... समस्या को समझने के लिए आप एक लंबे रास्ता मिल जाएगा, और अपने सिस्टम प्रशासक 5 मिनट से भी कम समय लगेगा।

मुझे अभी भी इसे जीडीबी पर चलाने के लिए असम्पीडित करने की आवश्यकता होगी जिसे मैं अपनी स्थानीय मशीन पर नहीं करना चाहता हूं।

इसके अलावा, अपने प्रबंधक से बात करें। आपका विकास सेटअप अनुचित है। आपको स्थानीय स्तर पर उत्पादन दुर्घटनाओं का विश्लेषण करने में सक्षम होना चाहिए, और इसका मतलब है कि आपको पर्याप्त बीफ़ी मशीन तक पहुंच प्राप्त करनी है।

संबंधित मुद्दे