2012-06-15 7 views
5

मैं प्रोटोकॉल विश्लेषण को समझने के लिए, Wireshark के स्रोत कोड को देखने के लिए कोशिश कर रहा हूँ, लेकिन मैंने पाया बनाने के लिए है कि जब मैं सिर्फ gdb ./wireshark, जब मैं का उपयोग करें दबाएं Ctrl + सी और ब्रेकपॉइंट सेट करें, फिर सी टाइप करें, प्रक्रिया मर जाती है। मैं जानना चाहता हूं कि जीडीबी डीबगिंग संभव बनाने के लिए libtool क्या करता है।मैं क्यों उपयोग करना चाहिए libtool --mode == gdb wireshark निष्पादित यह संभव डिबगिंग wireshark

मैं पहले से ही man libtool पढ़ा है और यह कहते हैं libtool एक उपकरण यह आसान एक सरल अंतरफलक द्वारा .a या .o के सभी प्रकार का उपयोग करने के लिए कर रहा है, लेकिन मैं नहीं जानता कि क्या कुंजी gdb wireshark libtool साथ संभव बनाने के लिए है।

उत्तर

5

जब आप प्रोग्राम बनाने के लिए libtool का उपयोग करते हैं, तो यह आपके प्लेटफॉर्म में साझा पुस्तकालयों का उपयोग करने की सभी कठिनाइयों और विशिष्टताओं को संभालेगा।

कठिनाइयों में से एक डिबगिंग है, क्योंकि जब आप डिबगिंग करते हैं तो आप साझा पुस्तकालयों को लोड करना चाहते हैं जो सिस्टम में स्थापित नहीं हैं (वे अभी संकलित हैं)। तो जब libtool निष्पादन योग्य बनाता है, तो यह इसे एक छिपी निर्देशिका (.libs) में ले जायेगा और आमतौर पर उसी स्क्रिप्ट या उसी नाम के समान होगा जहां आप इसे देख सकते हैं। यह स्क्रिप्ट सही पुस्तकालयों के साथ सही प्रोग्राम चलाने के लिए सभी जादू करेगी।

लेकिन, जाहिर है कि आप gdb के साथ एक स्क्रिप्ट डीबग नहीं कर सकते हैं!

$ libtool --mode=execute gdb ./wireshark 

आप देख सकते हैं चलाकर यह क्या करता है:: तो, ताकि इसे सही पुस्तकालयों के साथ सही कार्यक्रम डिबग करने के लिए सक्षम होने के लिए के लिए gdb करने के लिए सही पैरामीटर भेजने के लिए, आपको आदेश को चलाने के लिए है

$ libtool --mode=execute echo ./wireshark 

बस सीधे .libs से फाइल का उपयोग नहीं करते: हमेशा libtool या आवरण स्क्रिप्ट का उपयोग करें।

+0

धन्यवाद :) यह बहुत उपयोगी है –

+0

यह काम नहीं करता है। मैंने निर्देशिका में 'libtool e echo binary'' की कोशिश की और इसे मुद्रित किया गया '/ path/to/.libs/बाइनरी' इसे सीधे चलने वाला परिणाम नहीं देता है, न ही 'libtool e /path/to/.libs/binary '। 'Echo' से अधिक जादू लगता है और पर्यावरण चर प्रकट हो सकता है। –

+0

@ पावेल सिमरडा: बेशक इसके अलावा और जादू है। यदि नहीं, तो 'libtool' व्यर्थ होगा! यदि आप डीबग करना चाहते हैं तो बस 'libtool e gdb binary' करें। किसी भी गंभीर के लिए '.libs' से फ़ाइलों का उपयोग न करें। लेकिन अगर आप एक्सप्लोर करना चाहते हैं ... आगे बढ़ें, लेकिन ध्यान दें कि libtool बहुत जटिल है। – rodrigo

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