2012-02-17 6 views
5

के साथ web2py डीबगिंग मैं web2py एप्लिकेशन को हटाने के लिए ग्रहण (PyDev के साथ) का उपयोग कर रहा हूं। मैंने चीजों को सेट करने के लिए this guide का पालन किया है। अब, मैं ग्रहण का उपयोग कर अपने आवेदन को डीबग करना चाहता हूं। हालांकि, किसी कारण से, जब ब्रेकपॉइंट तक पहुंच जाता है तो निष्पादन (हमेशा) बंद नहीं होता है।ग्रहण

मैंने दो अलग-अलग वेब 2py ऐप्स बनाए हैं (दो ग्रहण परियोजनाओं में)। डिबगिंग एक पर काम करता प्रतीत होता है, लेकिन दूसरे पर नहीं। दोनों परियोजनाएं एक ही वेब 2py स्थापना का संदर्भ देती हैं। इस प्रकार, ग्रहण के माध्यम से कौन सा प्रोजेक्ट I "रन .../डीबग ..." से स्वतंत्र है, web2py ब्राउज़र के माध्यम से दोनों ऐप्स प्रदान करता है।

मैं एक साधारण परीक्षण फ़ाइल (नियंत्रक/test.py) के रूप में बनाया है:

def index(): 
    print 'I should break.' 
    print 'After the breakpoint' 
    return dict(test=1) 

एक ब्रेकपाइंट पहले print बयान करने के लिए सेट नहीं है।

मैंने इस फाइल को दोनों परियोजनाओं में रखा है (चलिए उन्हें ए और बी कहते हैं)।

मैं निम्नलिखित टिप्पणियों:

जब मैं ग्रहण से डीबगिंग लॉन्च करते हैं, डिबगर निष्पादन बंद हो जाता है जब भी मैं फ़ाइल test.py एक परियोजना के अंतर्गत आता है कि में ब्रेकप्वाइंट मारा, लेकिन यह में ब्रेकप्वाइंट अनदेखी करने के लिए लगता है फ़ाइल test.py जो प्रोजेक्ट बी से संबंधित है। इससे कोई फर्क नहीं पड़ता कि मैंने (एक्लीप्स-) प्रोजेक्ट ए या प्रोजेक्ट बी से वेब 2py लॉन्च किया है। व्यवहार हमेशा एक जैसा है। परियोजना से संबंधित फाइलों में ब्रेकपॉइंट्स एक कार्य, प्रोजेक्ट बी में उन लोगों को अनदेखा कर दिया जाता है।

मैंने सभी प्रोजेक्ट गुणों की तुलना की है और कॉन्फ़िगरेशन गुण चलाए हैं और मुझे कोई अंतर नहीं मिल रहा है (प्रोजेक्ट नाम और पथ को छोड़कर)।

दोनों परियोजनाओं का निष्पादन पूरी तरह से काम करता है। उदाहरण के लिए, ऊपर दिखाए गए परीक्षण फ़ाइल के print स्टेटमेंट का आउटपुट हमेशा ग्रहण कंसोल में दिखाया जाता है।

क्या किसी के पास कोई संकेत है कि यहां क्या हो रहा है? यह अंतर क्या हो सकता है जो इसे प्रोजेक्ट ए पर काम करता है लेकिन प्रोजेक्ट बी पर नहीं?

मैं पायथन 2.7.1 का उपयोग कर रहा हूं।

जब मैं

DEBUG_TRACE_LEVEL = 3 
DEBUG_TRACE_BREAKPOINTS = 3 
में

सेट ग्रहण/plugins/org.python.pydev.debug/pysrc/pydevd_constants.py (टिप्पणी में अनुरोध के रूप में), मैं निम्नलिखित कंसोल आउटपुट प्राप्त:

pydev डीबगर: ('फ़ाइल निष्पादित करना', 'सी: \ misc \ web2py_src \ web2py \ web2py.py') ('तर्क:', "['सी: \\ Misc \\ web2py_src \\ web2py \\ web2py.py '] ") (' कनेक्टिंग ',' 127.0.0.1 ',': ',' 49565 ') (' कनेक्टेड। ',) (' प्राप्त आदेश ',' 501 \ T1 \ t1.1 ') भेजने cmd: CMD_VERSION 501 1 1,1

sending cmd: CMD_THREAD_CREATE 103 2 <xml><thread name="pydevd.reader" id="-1"/></xml> 

sending cmd: CMD_THREAD_CREATE 103 4 <xml><thread name="pydevd.writer" id="-1"/></xml> 

('received command ', '111\t3\tC:\\misc\\workspace\\Newtoon\\controllers\\test.py\t12\t**FUNC**index\tNone') 
Added breakpoint:c:\misc\workspace\newtoon\controllers\test.py - line:12 - func_name:index 
('received command ', '111\t5\tC:\\misc\\workspace\\Newtoon\\controllers\\importer.py\t11\t**FUNC**index\tNone') 
Added breakpoint:c:\misc\workspace\newtoon\controllers\importer.py - line:11 - func_name:index 
('received command ', '111\t7\tC:\\misc\\web2py_src\\web2py\\applications\\GeorgsTestApp\\controllers\\unique_names.py\t6\t**FUNC**index\tNone') 
Added breakpoint:c:\misc\web2py_src\web2py\applications\georgstestapp\controllers\unique_names.py - line:6 - func_name:index 
('received command ', '111\t9\tC:\\misc\\web2py_src\\web2py\\applications\\GeorgsTestApp\\controllers\\test.py\t12\t**FUNC**index\tNone') 
Added breakpoint:c:\misc\web2py_src\web2py\applications\georgstestapp\controllers\test.py - line:12 - func_name:index 
('received command ', '122\t11\t;;') 
Exceptions to hook : [] 
('received command ', '124\t13\t') 
('received command ', '101\t15\t') 
No handlers could be found for logger "web2py" 
web2py Web Framework 
Created by Massimo Di Pierro, Copyright 2007-2011 
Version 1.99.4 (2011-12-14 14:46:14) stable 
Database drivers available: SQLite3, pymysql 
Starting hardcron... 
WARNING:web2py.cron:WEB2PY CRON: Disabled because no file locking 
sending cmd: CMD_THREAD_CREATE 103 6 <xml><thread name="MainThread" id="pid5740_seq4" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 8 <xml><thread name="Thread-4" id="pid5740_seq5" /></xml> 

please visit: 
    http://127.0.0.1:8000 
starting browser... 
sending cmd: CMD_THREAD_CREATE 103 10 <xml><thread name="Dummy-7" id="pid5740_seq6" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 12 <xml><thread name="Dummy-6" id="pid5740_seq7" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 14 <xml><thread name="Thread-13" id="pid5740_seq8" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 16 <xml><thread name="Thread-10" id="pid5740_seq9" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 18 <xml><thread name="Thread-11" id="pid5740_seq10" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 20 <xml><thread name="Port8000" id="pid5740_seq11" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 22 <xml><thread name="Thread-12" id="pid5740_seq12" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 24 <xml><thread name="Thread-8" id="pid5740_seq13" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 26 <xml><thread name="Thread-9" id="pid5740_seq14" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 28 <xml><thread name="Thread-16" id="pid5740_seq15" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 30 <xml><thread name="Thread-15" id="pid5740_seq16" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 32 <xml><thread name="Thread-18" id="pid5740_seq17" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 34 <xml><thread name="Thread-14" id="pid5740_seq18" /></xml> 

sending cmd: CMD_THREAD_CREATE 103 36 <xml><thread name="Thread-17" id="pid5740_seq19" /></xml> 

WARNING:web2py.cron:WEB2PY CRON: Disabled because no file locking 
I should break. 
After the breakpoint 
sending cmd: CMD_THREAD_SUSPEND 105 38 <xml><thread id="pid5740_seq12" stop_reason="111"><frame id="97199496" name="index" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Capplications%255Cgeorgstestapp%255Ccontrollers%255Ctest.py" line="12">"</frame><frame id="95957960" name="%26lt%3Blambda%26gt%3B" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Cglobals.py" line="172">"</frame><frame id="100912680" name="%26lt%3Bmodule%26gt%3B" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Capplications%255Cgeorgstestapp%255Ccontrollers%255Ctest.py" line="19">"</frame><frame id="66219576" name="restricted" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Crestricted.py" line="204">"</frame><frame id="96138760" name="run_controller_in" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Ccompileapp.py" line="537">"</frame><frame id="96513256" name="serve_controller" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Cmain.py" line="202">"</frame><frame id="62835496" name="wsgibase" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Cmain.py" line="493">"</frame><frame id="62834872" name="app_with_logging" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Cmain.py" line="676">"</frame><frame id="96071288" name="run_app" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Crocket.py" line="1994">"</frame><frame id="66212296" name="run" file="c%253A%255Cmisc%255Cweb2py_src%255Cweb2py%255Cgluon%255Crocket.py" line="1302">"</frame><frame id="95948632" name="__bootstrap_inner" file="c%253A%255Cpython27%255Clib%255Cthreading.py" line="530">"</frame><frame id="96053672" name="__bootstrap" file="c%253A%255Cpython27%255Clib%255Cthreading.py" line="503">"</frame></thread></xml> 

WARNING:web2py.cron:WEB2PY CRON: Disabled because no file locking 
('received command ', '106\t17\tpid5740_seq12') 
('processing internal command ', '<pydevd_comm.InternalRunThread instance at 0x0000000005F82E88>') 
I should break. 
After the breakpoint 
sending cmd: CMD_THREAD_RUN 106 40 pid5740_seq12 None 

व्यवहार नहीं बदलता है। ऐप बी में ब्रेकपॉइंट को नजरअंदाज कर दिया जाता है, जबकि ऐप ए में से एक काम करता है।

+0

आप किस पायथन संस्करण का उपयोग कर रहे हैं? क्या आप ग्रहण \ plugins \ org.python.pydev.debug \ pysrc \ pydevd_constants.py और DEBUG_TRACE_LEVEL = 3 और DEBUG_TRACE_BREAKPOINTS = 3 सेट कर सकते हैं, अपने कार्यक्रम को दोनों मामलों पर चलाएं और परिणाम को प्रश्न में जोड़ें? –

उत्तर

1

मैंने एक ही समस्या में भाग लिया है, जहां मुझे काम करने के लिए ब्रेकपॉइंट नहीं मिल सका (pydev breakpoints not working)।

अभी तक कोई समाधान नहीं है, लेकिन शायद यह जानना उपयोगी है कि मैं web2py का उपयोग नहीं कर रहा हूं।