2013-11-03 7 views
27

मैं एलएलडीबी का उपयोग कर रहा हूं, मैं सोच रहा हूं कि स्मृति 0xb0987654 मेमोरी में मूल्य कैसे मुद्रित करें?lldb का उपयोग कर 0xb0987654 में मेमोरी कैसे मुद्रित करें?

+1

क्या आपने 'print * (int *) 0xb0987654' को आजमाया था? –

+1

मुझे त्रुटि मिली, त्रुटि: संरचना को डिमटेरियलाइज़ नहीं किया जा सका: (शून्य) निष्पादन में त्रुटिपूर्ण: अंतिमकरण नहीं कर सका JITExpression –

+0

फिर 'gdb' –

उत्तर

8

"me" वह आदेश है जिसे आप ढूंढ रहे हैं।

उदाहरण के लिए, इस lldb आदेश:

me -r -o /tmp/mem.txt -c512 0xb0987654 

/tmp/mem.txt पर एक फ़ाइल में अपनी स्मृति पते से 512 बाइट्स कॉपी कर देंगे।

32

माइकल के उत्तर के पूरक के लिए।

memory read -s1 -fu -c10000 0xb0987654 --force 

कि डीबगर में प्रिंट होगा:

मैं इस्तेमाल करते हैं।

  1. तो प्रारूप के लिए पूर्णांक
  2. -f के लिए उदाहरण के लिए uint8 के लिए 1 और 4 का उपयोग समूहीकरण बाइट्स के लिए -s। मैं निस्संदेह सही प्रतीक भूल जाता हूं। बस कथन को -f के साथ रखें और यह आपको सभी विकल्पों की सूची देगा
  3. -c बाइट्स
  4. की गिनती के लिए है यदि आप 1024 से अधिक बाइट्स प्रिंट कर रहे हैं, तो बल के साथ संलग्न करें

उम्मीद है कि इससे मदद मिलती है।

38

एक्सकोड बहुत अच्छा मेमोरी ब्राउज़र विंडो है, जो स्मृति पते की सामग्री को बहुत अच्छी तरह से प्रदर्शित करेगा। ⌘⇧M

या

दबाकर

enter image description here

आप इसे accesss कर सकते हैं: यह भी आप बाइट समूहीकरण और प्रदर्शित बाइट्स की संख्या को नियंत्रित, और वापस ले जाने या एक मेमोरी पेज आगे की सुविधा देता है डीबग -> डीबग वर्कफ़्लो -> मेमोरी देखें

अपने निचले बाएं कोने पर फ़ील्ड पर ध्यान दें जहां आप उस मेमोरी पते को पेस्ट कर सकते हैं जिसे आप निरीक्षण करना चाहते हैं!

यहाँ प्रलेखन: https://developer.apple.com/library/ios/recipes/xcode_help-debugger/articles/viewing_memory.html

संबंधित जवाब यहाँ: How do I open the memory browser in Xcode 4?

1

यहाँ lldb में निश्चित लंबाई के द्वारा लिखा गया सरणियों प्रदर्शित करने के लिए एक सरल चाल है। अपने कार्यक्रम के एक लंबे * चर कि 9 तत्वों की ओर इशारा करता है, तो आप एक struct प्रकार है कि 9 लंबे मूल्यों का एक निश्चित सरणी शामिल घोषित करने और उस प्रकार के सूचक डाली कर सकते हैं:

long *values = new long[9]{...}; 

(lldb) expr typedef struct { long values[9]; } l9; *(l9 *)values 
(l9) $1 = { 
    values = { 
    [0] = 0 
    [1] = 1 
    [2] = 4 
    [3] = 9 
    [4] = 16 
    [5] = 25 
    [6] = 36 
    [7] = 49 
    [8] = 64 
    } 
} 

मैं typedef का उपयोग जब मैं सी में कोडिंग, सी ++ में इसकी आवश्यकता नहीं है।

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