2012-02-04 10 views
6

मुझे cgdb को बाइनरी को अलग करने और कोड विंडो में वर्तमान निर्देश के साथ असेंबली कोड दिखाने का कोई तरीका नहीं मिल रहा है। क्या यह संभव है और मुझे किस कमांड का उपयोग करना चाहिए? मैं मैक ओएस एक्स का उपयोग कर रहा हूं और होमब्रे रिपोजिटरी से सीजीडीबी मिला हूं।सीजीडीबी शो असेंबली कोड कैसे बनाएं?

उत्तर

4

display/i $pc कंसोल विंडो में वर्तमान निर्देश के लिए हमेशा पृथक्करण दिखाता है।

अधिक निर्देशों के लिए डिस्सेप्लर दिखाने के लिए, निर्देशों की संख्या के साथ i उपसर्ग करें।

उदाहरण के लिए,

display/5i $pc 

अगले 5 निर्देश के लिए हमेशा disassembly को दर्शाता है।

+1

यह सॉर्टा सीजीडीबी के उद्देश्य को खारिज कर देता है। अगर यह कार्यक्षमता केवल एक gdb कमांड के माध्यम से हासिल की जाती है तो sourceless अनुप्रयोगों को डीबग करने के लिए सादा जीडीबी के बजाय इसका उपयोग क्यों किया जाएगा? – Ruslan

+0

अब इसे 'सेट सेट' (संस्करण 0.7.0 के रूप में) के साथ करने का एक तरीका है। मेरा जवाब देखें –

0

मैं एक बाइनरी बम को कम करने के लिए मैकोज़ पर काम कर रहा हूं और "gdb -tui" उपयोगी होगा। मुझे लगता है कि "सीजीडीबी" कोड रंगीन बना सकता है। लेकिन हम जो देखना चाहते हैं वह कोड विंडो पर अलग-अलग कोड दिखाता है, उपरोक्त उत्तर केवल लाइन लाइन या केवल परिवर्तनीय रेखाओं से कोड लाइन दिखाता है।

दुर्भाग्य से, मुझे एक पोस्ट में कहा गया है कि "सीजीडीबी असेंबली डिस्प्ले (अभी तक) का समर्थन नहीं करता है।" https://groups.google.com/forum/#!topic/cgdb-users/E-jZCJiBAQQ

Sorry guys, cgdb does not support assembly display (yet). It's a 
frequently requested feature, and when we get a little more time to 
work on cgdb we will probably add this. 
Starting cgdb with the -tui option is a bad idea -- the TUI (text user 
interface) is an alternative curses interface to gdb, not a part of 
cgdb. It will not play nice with cgdb. 
Mike 
-- 
Mike Mueller 

खैर, यह 12/11/15 है, लेकिन यह अभी भी लगता है टुइ मोड में gdb की तरह कोड खिड़की पर विधानसभा कोड नहीं दिखा सकता है।

2

सीजीडीबी को हालिया अपडेट (फरवरी 2017) से ऐसा करना संभव हो जाता है। आपको cgdb संस्करण 0.7.0 या नए की आवश्यकता होगी। (लिखने के समय यह नवीनतम रिलीज है)। आपको इसे हाल ही में स्रोत से संकलित करने की आवश्यकता हो सकती है कि यह कितना हालिया है। disassembly के समर्थन जोड़ने पर

अधिक जानकारी यहां पाया जा सकता है: https://github.com/cgdb/cgdb/issues/44

cgdb में disassembly को देखने के लिए esc और प्रकार मारा :set disदर्ज

स्रोत (यदि उपलब्ध हो) पर वापस जाने के लिए, :set nodis को छोड़कर इसे दोहराएं।

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