2009-03-05 22 views
7

मैं सोलारिस 10 x86 पर एक बंद स्रोत प्रोग्राम डीबग करने के लिए जीडीबी का उपयोग कर रहा हूं।सोलारिस जीडीबी: कैसे रोकें रोकें?

मैं प्रोग्राम में जीडीबी संलग्न करता हूं और निष्पादन जारी रखता हूं, हालांकि जब मैं बाद में कुछ स्मृति की जांच करने के लिए निष्पादन रोकना चाहता हूं। जब मैं CTRL-C दबाता हूं तो यह प्रोग्राम को रोकने और मुझे (gdb) प्रॉम्प्ट पर छोड़ने के बजाय केवल^सी प्रिंट करता है।

bash-3.00# gdb --pid=1521 
GNU gdb 6.6 
Copyright (C) 2006 Free Software Foundation, Inc. 
GDB is free software, covered by the GNU General Public License, and you are 
welcome to change it and/or distribute copies of it under certain conditions. 
Type "show copying" to see the conditions. 
There is absolutely no warranty for GDB. Type "show warranty" for details. 
This GDB was configured as "i386-pc-solaris2.10". 
Attaching to process 1521 
Retry #1: 
Retry #2: 
Retry #3: 
Retry #4: 
[New LWP 1] 
0xfe3b5a23 in ??() 
(gdb) c 
Continuing. 
^C^C^C^C^C^C^C^C 

कैसे मैं एक (gdb) वापस करने के लिए मिलता है का संकेत? क्या मैं कुछ गलत कर रहा हूं या मैं इसे काम करने के बारे में कैसे जा सकता हूं।

+0

समान http://stackoverflow.com/questions/5857300/gdb-ctrlc-doesnt-interrupt-process-as- का उपयोग कर सकते यह आम तौर पर होती है- –

उत्तर

4

बस एक कामकाज मिला।

kill -INT 1521 

GDB SIGINT प्राप्त डिबग कार्यक्रम पर निष्पादन रुकेगा: एक और टर्मिनल से निम्न आदेश दे।

0

यह जीडीबी में एक बग होगा।

यदि आप CVS Head से जीडीबी के वर्तमान संस्करण के साथ इसे पुन: पेश कर सकते हैं, तो कृपया bug दर्ज करें।

0

जैसे ही आप सोलारिस का उपयोग करते हैं, और मुझे लगता है कि आप बैश का उपयोग कर रहे हैं, तो संभवतः आप अपने टर्मिनल को सही तरीके से सेट नहीं कर रहे हैं, बैश अक्सर आपके लिए बहुत कुछ संभाल सकता है लेकिन यदि आप क्ष या कुछ में थे, तो आपका बैकस्पेस प्रिंटिंग हो सकता है^एच बैकस्पेसिंग के बजाय (उस स्थिति में आपको स्टटी मिट '^ एच' की आवश्यकता है ... आप हमेशा अपने कंसोल को स्टटी सेन के साथ सेट कर सकते हैं।

यहां एक संभावित समस्या है, जो एक बग नहीं है, है कि एप्लिकेशन आपको डिबगिंग रहे हैं, आपके termnial को रीसेट है, मैं नहीं एक सोलारिस बॉक्स पर अभी हूँ, लेकिन जीएनयू stty के आप stty tostop की तरह कुछ करने के लिए अनुमति देते हैं,

  • [-] रोक पृष्ठभूमि नौकरियों कि टर्मिनल

तुम भी रीसेट या किसी अन्य टर्मिनल से tset चला सकते हैं और फिर से कॉन्फ़िगर करने के लिए लिखने की कोशिश tostop अपने^सी

gdb अंदर से

, आप "tty" उपनाम या सेट अवर-TTY/पथ// अवधि

Set terminal for future runs of program being debugged. 
Usage: set inferior-tty /dev/pts/1 
संबंधित मुद्दे