2016-07-01 3 views
6

से एक चर को कैसे निकालें I gdb की ऑटो-डिस्प्ले कार्यक्षमता पर ठोकर खाई, जो कि बहुत शक्तिशाली और सुविधाजनक है।जीडीबी: ऑटो डिस्प्ले

(gdb) display/i $pc 
(gdb) display $rax 

देखे गए मान कॉल करने के बाद हर कदम के बाद स्वत: प्रदर्शित होते हैं:

(gdb) si 
0x0804805e in print_loop_start() 
2: $rax = 0 
1: x/i $pc 
=> 0x804805e <print_loop_start+6>: mov 0x4(%ebp,%eax,4),%ecx 

लेकिन यह कैसे कर सकते हैं मैं "unwatch" $ Rax में मूल्य है, अगर यह ब्याज की नहीं रह गया है?

+1

पहले किए गए प्रदर्शन अनुरोधों को रद्द करने के लिए "अनदेखा करें" का उपयोग करें। " – dbrank0

उत्तर

10
प्रदर्शन के लिए

Gdb मदद का कहना है:

"प्रदर्शन अनुरोधों को कैंसिल करने के लिए पहले किए गए प्रयोग करें undisplay।"

तो तुम display a, तो display b, और display c gdb करना अगर यह अनुरोध (जो आप कोई तर्क के साथ पुनरावृत्ति जारी करके देख सकते हैं) करने के लिए संख्या दे देंगे। फिर आप undisplay के साथ इस नंबर का उपयोग कर सकते हैं।

उदाहरण: gdb documentation में

(gdb) display a 
1: a = 32767 
(gdb) display b 
2: b = 0 
(gdb) display c 
3: c = 0 
(gdb) undisplay 2 
(gdb) step 
6  b = 2; 
1: a = 1 
3: c = 0 

विवरण।

+1

'डिस्प्ले डिलीवरी 1' भी काम करता है। –