2012-10-27 7 views
24

मेरे पास एक प्रोग्राम है और मैं इसे जीडीबी का उपयोग करके डीबग करने की कोशिश कर रहा हूं। कार्यक्रम के अंदर मेरे पास ऐसे विधियां हैं जिन्हें उपयोगकर्ता को stdin का उपयोग करके इनपुट दर्ज करने की आवश्यकता होती है। जब मैं gdb में हूं तो मैं इस इनपुट को कैसे दर्ज कर सकता हूं? ताकि मैं पता लगा सकूं कि मेरी विधियां कैसे काम करती हैं?एक प्रोग्राम को डीबग कैसे करें जो उपयोगकर्ता इनपुट को जीडीबी के साथ stdin से लेता है?

+0

प्रत्यक्ष इनपुट के सरल मामले के लिए, प्रश्न इस जैसा ही है: http://stackoverflow.com/questions/455544 ऐसे मामले हैं जिनमें यह शामिल नहीं है: 1) आपको stdin तय करने के लिए stdout देखना होगा 2) वास्तविक समय और keypresses ncurses की तरह की जरूरत है। उन मामलों में, शायद उम्मीद है कि यह हो सकता है: http://stackoverflow.com/questions/5579901/automated-test-tools-for-linux-ncurses –

उत्तर

21
$ cat >foo <<EOF 
something 
EOF 
$ gdb -quiet /bin/cat 
Reading symbols from /bin/cat...(no debugging symbols found)...done. 
Missing separate debuginfos, use: debuginfo-install coreutils-8.12-7.fc16.x86_64 
(gdb) run <foo 
Starting program: /bin/cat <foo 
something 
[Inferior 1 (process 22436) exited normally] 
(gdb) 
1

मैं सिर्फ यह कल की तरह कुछ के माध्यम से चला गया और "सहायता" का एक समूह के माध्यम से recursed gdb में आदेश क्योंकि मैं नहीं पा सके कि वास्तव में क्या मैं इंटरनेट पर की जरूरत है।

मैंने जीडीबी शुरू करने के बाद set variable *your_variable* = *your desired input* का उपयोग किया और अपना कोड चलाने शुरू कर दिया। एक जादू की तरह काम किया।

मुझे पता है कि यह देर हो चुकी है, लेकिन शायद यह किसी और की मदद करेगी।

+1

स्टडीन के लिए आप इसका उपयोग कैसे करेंगे? – Aralox

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

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