2010-11-24 21 views
9

gdb का उपयोग कर प्रोग्राम के माध्यम से कदम उठाने पर एक पॉइंटर इंगित करने वाली स्ट्रिंग का निरीक्षण कैसे करूं? मैं देख सकता हूं कि एक पॉइंटर 0x82c6e10 पर इंगित कर रहा है। मुझे पता है कि यह एक स्ट्रिंग है। मैं इसे कैसे प्रिंट करूं? printf("%s\n", 0x82c6e10) का उपयोग Bad format string, missing '"'. देता है तथ्य यह है कि जीडीबी अज्ञात कमांड की शिकायत नहीं करता है, मुझे बताता है कि समाधान मैं जो कर रहा हूं उसके कुछ बदलाव है। क्या मैं सही हू? मैंने उद्धरण से बचने की कोशिश की लेकिन इससे मदद नहीं मिली।gdb का उपयोग करते हुए डीबगिंग करते समय स्ट्रिंग को पॉइंटर पॉइंट कैसे मुद्रित करें?

उत्तर

11

यहाँ printf एक समारोह है, लेकिन एक gdb आदेश नहीं है। कोष्ठक छोड़ दें।

अभी तक बेहतर, बस print आदेश, या प्रारूप के साथ x आदेश का उपयोग /s

(आप वास्तव में सी समारोह printf()call कमांड के साथ कह सकते हैं।) `

gdb मोटा मदद से उपलब्ध है help कमांड। कोशिश करो।

13

प्रयास करें:

print (char *)pointer 
2

प्रिंट (चार *) 0x82c6e10

16

उपयोग x बजाय p:

x /s 0x82c6e10 
संबंधित मुद्दे