2010-05-04 8 views
6

मैं पीडीबी के साथ पायथन कोड डीबग कर रहा हूं। कोड, stdin से इनपुट की जरूरत है जैसे:इनपुट के साथ पीडीबी पायथन कोड कैसे करें?

python -m pdb foo.py < bar.in 

फिर pdb आदेशों के रूप में bar.in को स्वीकार करेंगे। पीडीबी कैसे बताना है कि इनपुट foo.py के लिए है और पीडीबी के लिए नहीं है?

उत्तर

1

सकल काम का एक तरह चारों ओर bar.in की शुरुआत में cont डाल करने के लिए है:

cont 
one 
two 
three 
four 


[email protected] ~$ python -m pdb cat.py < bar.in 
> ~/cat.py(1)<module>() 
-> import sys 
(Pdb) one 
two 
three 
four 
The program finished and will be restarted 
> ~/cat.py(1)<module>() 
-> import sys 
(Pdb) 
3

खैर, यह हारून के जवाब देने के लिए एक ट्वीक है, लेकिन मैं यह है कि में बात याद करते हैं लगता है कि आप सहभागी करना चाहते हैं किसी बिंदु पर डीबग करें, है ना? यह काम करता है लेकिन डीबग करने का मौका मिलने से पहले कार्यक्रम निकलता है।

(echo cont;cat bar.in) | python -m pdb foo.py 

मुझे लगता है कि अगर आप foo.py संपादित कर सकते हैं, foo.py कर pdb.set_trace() में दिलचस्प बात पर तो import pdb करते हैं, और सिर्फ -m pdb बिना python foo.py सामान्य रूप से

python foo.py < bar.in 
चलाने के लिए और इसे देने के bar.in
संबंधित मुद्दे