2009-12-10 18 views
34

में एक आदेश के साथ कई चर मैं gdb में बहुत ही सरल आदेश पर अमल करनेप्रिंट GDB

print var1, var2, var3, var4 

समय-समय पर वार्स के मूल्यों की जांच करना चाहते।

मैं डिस्प्ले का उपयोग नहीं करना चाहता क्योंकि यह मेरे विचार को बंद कर देता है।

मैं यह कैसे कर सकता हूं? अभी सब मैं क्या कर सकते हैं:

p var1 
p var2 
p var3 
p var4 
+1

इसकी अद्भुत 2016 और यह समस्या अभी भी मौजूद है। – jww

उत्तर

26

printf आदेश का उपयोग करें। यह एक परेशानी का थोड़ा सा है, लेकिन यह स्वरूपण पर अच्छा नियंत्रण देता है। कमांड लाइन से:

(gdb) help printf 
printf "printf format string", arg1, arg2, arg3, ..., argn 
This is useful for formatted output in user-defined commands. 

प्रारूप स्ट्रिंग सी में की तरह है (% d सामान्य आकार ints के लिए, अशक्त% s समाप्त तार, आदि)।

+0

धन्यवाद टीजीवी और एडवर्ड –

22

आप बस इस

print {var1,var2,var3,var4} 

यह काम करेगा कर सकते हैं।

+4

मैं त्रुटि में चलाता हूं 'सरणी तत्व सभी एक ही आकार' होना चाहिए। – pevik

-10

आप दो चर के बीच बस स्थान का उपयोग कर सकते हैं।

print var1 var2 
+0

यह काम नहीं करता है: "(gdb) p यह यह" देता है "अभिव्यक्ति में एक वाक्यविन्यास त्रुटि, 'इस' के पास।" – craigster0

13

उपयोग मैक्रो:

उदाहरण के लिए prm की परिभाषा के लिए

(gdb) define prm 

प्रकार आदेशों अगले तोड़ने बिंदु और प्रिंट करने के लिए जारी रखने के लिए। केवल end कहकर एक पंक्ति के साथ समाप्त करें।

>continue 
>print var1 
>print var2 
>print var3 
>end 

(gdb) prm 
$5 = 0 
$6 = 10 
$7 = -1