2011-06-07 19 views

उत्तर

350

टाइप करें info variables "सभी वैश्विक और स्थैतिक चर नाम" सूचीबद्ध करने के लिए।

info locals टाइप करें "वर्तमान स्टैक फ्रेम के स्थानीय चर" (नाम और मान), जिसमें उस फ़ंक्शन में स्थिर चर शामिल हैं।

"वर्तमान स्टैक फ्रेम के तर्क" (नाम और मान) को सूचीबद्ध करने के लिए info args टाइप करें।

+2

@ KennyTM, 'जानकारी variables' के उत्पादन में स्थैतिक चर नाम स्थिर होना चाहिए उस संकलन इकाई के भीतर चर, सही? – cpuer

+3

@cpuer: जरूरी नहीं है। यह केवल प्रतीक तालिका में नाम प्रदर्शित करता है। उदाहरण के लिए, मैक पर जीसीसी के साथ एक स्थिर चर 'y' का नाम संकलन पर 'y.1913' रखा गया है। – kennytm

+1

@ केनीटीएम, फ़ंक्शन के अंदर स्थैतिक चर नहीं है जैसे फ़ंक्शन के बाहर स्थिर चर (प्रतीक तालिका में)? – cpuer

17

इसके अलावा, info locals के बाद से, समारोह में लिप्त हों तर्क प्रदर्शित नहीं करता है

(gdb) info args 

उदाहरण के लिए उपयोग करें:

int main(int argc, char *argv[]) { 
    argc = 6*7; //Break here. 
    return 0; 
} 

argc और argvinfo locals द्वारा नहीं दिखाया जाएगा । संदेश "कोई स्थानीय नहीं होगा।"

संदर्भ: info locals command

77

मामले में आप से पहले info locals

जैसे एक कॉलिंग समारोह उपयोग select-frame की स्थानीय चर देखना चाहते हैं:

(gdb) bt 
#0 0xfec3c0b5 in _lwp_kill() from /lib/libc.so.1 
#1 0xfec36f39 in thr_kill() from /lib/libc.so.1 
#2 0xfebe3603 in raise() from /lib/libc.so.1 
#3 0xfebc2961 in abort() from /lib/libc.so.1 
#4 0xfebc2bef in _assert_c99() from /lib/libc.so.1 
#5 0x08053260 in main (argc=1, argv=0x8047958) at ber.c:480 
(gdb) info locals 
No symbol table info available. 
(gdb) select-frame 5 
(gdb) info locals 
i = 28 
(gdb) 
संबंधित मुद्दे