का उपयोग कर पुनर्निर्देशन ऐसा लगता है कि gdb में इनपुट पुनर्निर्देशन Cygwin में काम नहीं करता, उदा,gdb इनपुट cygwin
(gdb) run < input.txt
वहाँ Cygwin की gdb में इनपुट रीडायरेक्ट करने के लिए अन्य रास्ता नहीं है ??
का उपयोग कर पुनर्निर्देशन ऐसा लगता है कि gdb में इनपुट पुनर्निर्देशन Cygwin में काम नहीं करता, उदा,gdb इनपुट cygwin
(gdb) run < input.txt
वहाँ Cygwin की gdb में इनपुट रीडायरेक्ट करने के लिए अन्य रास्ता नहीं है ??
दुर्भाग्य से साइगविन में gdb चलाते समय यह संभव नहीं है। bug एक उद्धरण के लिए लंबे समय तक मौजूद है, लेकिन स्पष्ट रूप से यह ठीक करना मुश्किल है - और शायद जीडीबी देव अधिक सामान्य वातावरण (जैसे कि लिनक्स) के लिए प्रासंगिक सुविधाओं/मुद्दों पर समय बिताना पसंद करते हैं।
कई संभावित कामकाज हैं; मैं पहली बार पसंद करता हूं क्योंकि यह सिग्विन पर डिबगिंग/चलने के दौरान सबसे साफ और उपयोगी भी है:
-f whatever
whatever
से पढ़ने के लिए फ़ाइल नाम होने के साथ। यदि तर्क मौजूद नहीं है या -
पर सेट है, तो stdin से पढ़ें। -f -
विकल्प निश्चित रूप से वैकल्पिक है लेकिन फाइलनामों को स्वीकार करने वाले तर्कों के लिए -
को "stdin/out" के रूप में संभालने के लिए यह एक सामान्य मानक है (जब तक यह समझ में आता है)।उपयोग gdb हैक here उल्लेख आवेदन के अंदर एक मैन्युअल रूप से खोला फाइल करने के लिए stdin पुन: मैप करने के लिए:
> gdb yourexecutable
(gdb) break main
(gdb) run
(gdb) call dup2(open("input.txt", 0), 0)
(gdb) continue
यह main
समारोह पर एक ब्रेकपाइंट सेट है, तो प्रोग्राम है जो सही main
प्रवेश करने के बाद टूट जाएगा निष्पादित करता है। फिर इनपुट फ़ाइल के फ़ाइल डिस्क्रिप्टर के साथ stdin fd (0
) को प्रतिस्थापित करने के लिए dup2
का उपयोग किया जाता है।
यह Cygwin की एक सीमा है, वहाँ विभिन्न समाधान है कि के लिए, तो आप इस संबंधित सवाल के समाधान की कोशिश कर सकते है: http://stackoverflow.com/questions/3544325/input-redirection-in-gdb-mingw – speedblue