gdb

2011-10-21 20 views
47

के साथ स्टैक की सामग्री कैसे देख सकता है मैं gdb के लिए नया हूं, इसलिए मेरे पास कुछ सवाल है;gdb

  • मैं ढेर के सामग्री कैसे देख सकते हैं? पूर्व: रजिस्टर की सामग्री देखने के लिए, मैं info registers टाइप करता हूं। स्टैक के लिए

  • मैं $0x4(%esp) की सामग्री कैसे देख सकता हूं? जब मैं print /d $0x4(%esp) टाइप करता हूं तो gdb त्रुटि देता है।

मंच: लिनक्स gdb

+0

संभव डुप्लिकेट [मशीन स्टैक का निरीक्षण करने के लिए जीडीबी का उपयोग] [http://stackoverflow.com/questions/4019508/using-gdb-to-inspect-the-machine-stack) –

उत्तर

63

info frame स्टैक फ्रेम जानकारी

दिखाने के लिए प्रारूप सिंटैक्स का उपयोग करता दिए गए पतों पर स्मृति को पढ़ने के लिए आप अहस्ताक्षरित आदि एक्स के लिए हस्ताक्षर किए x/u $esp के लिए हेक्स x/d $esp के लिए x

x/x $esp पर एक नज़र रखना चाहिए, आप भी माध्यम से x/i $eip आदि

39

आप gdb की स्मृति-प्रदर्शन आदेशों का उपयोग करने की जरूरत है। मूल एक x, for examine है। वहाँ पर लिंक करने के लिए पेज का उपयोग करता है

gdb> x/4xw $sp 

"हेक्साडेसिमल (x) में ढेर सूचक (यहाँ, $sp) के ऊपर स्मृति के चार शब्द (w)" मुद्रित करने के लिए एक उदाहरण है। उद्धरण थोड़ा स्पष्ट है।

32

उपयोग वर्तमान अनुदेश पर एक नज़र ले सकता है:

1. bt - पश्व-अनुरेखन: शो ढेर कार्य करता है और आर्ग

2. info frame - शो ढेर प्रारंभ/समाप्ति/आर्ग/स्थानीय लोगों संकेत

3. x/100x $sp - शो ढेर स्मृति

  
(gdb) bt 
#0 zzz() at zzz.c:96 
#1 0xf7d39cba in yyy ([email protected]=0x0) at yyy.c:542 
#2 0xf7d3a4f6 in yyyinit() at yyy.c:590 
#3 0x0804ac0c in gnninit() at gnn.c:374 
#4 main (argc=1, argv=0xffffd5e4) at gnn.c:389 

(gdb) info frame 
Stack level 0, frame at 0xffeac770: 
eip = 0x8049047 in main (goo.c:291); saved eip 0xf7f1fea1 
source language c. 
Arglist at 0xffeac768, args: argc=1, argv=0xffffd5e4 
Locals at 0xffeac768, Previous frame's sp is 0xffeac770 
Saved registers: 
    ebx at 0xffeac75c, ebp at 0xffeac768, esi at 0xffeac760, edi at 0xffeac764, eip at 0xffeac76c 

(gdb) x/10x $sp 
0xffeac63c: 0xf7d39cba 0xf7d3c0d8 0xf7d3c21b 0x00000001 
0xffeac64c: 0xf78d133f 0xffeac6f4 0xf7a14450 0xffeac678 
0xffeac65c: 0x00000000 0xf7d3790e 
की

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