2012-02-17 35 views
5

Tôi đang sử dụng Eclipse (với PyDev) để xóa một ứng dụng web2py. Tôi đã theo dõi this guide để thiết lập mọi thứ. Bây giờ, tôi muốn gỡ lỗi ứng dụng của mình bằng Eclipse. Tuy nhiên, vì một số lý do, việc thực hiện không (luôn luôn) dừng lại khi nó đạt đến điểm ngắt.Gỡ lỗi web2py với Eclipse

Tôi đã tạo hai ứng dụng web2py riêng biệt (trong hai dự án Eclipse). Gỡ lỗi dường như làm việc trên một, nhưng không phải trên một khác. Cả hai dự án đều tham khảo cùng một cài đặt web2py. Do đó, độc lập với dự án tôi "Chạy .../Gỡ lỗi ..." trong Eclipse, web2py cung cấp cả hai ứng dụng thông qua trình duyệt.

tôi đã tạo ra một tập tin thử nghiệm đơn giản (controllers/test.py) như sau:

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

Có một breakpoint thiết lập để báo cáo kết quả đầu tiên print.

Tôi đã đặt tệp này trong cả hai dự án (hãy gọi chúng là A và B).

tôi có những quan sát sau:

Khi tôi khởi động gỡ lỗi từ Eclipse, trình gỡ lỗi dừng thực hiện bất cứ khi nào tôi nhấn breakpoint trong test.py tập tin đó thuộc về dự án A, nhưng nó dường như bỏ qua các breakpoint trong tệp test.py thuộc về dự án B. Không quan trọng liệu tôi đã khởi chạy web2py từ dự án (Eclipse-) A hay dự án B. Hành vi này luôn giống nhau. Các điểm ngắt trong các tệp thuộc về dự án Một tác phẩm, các tệp trong dự án B bị bỏ qua.

Tôi đã so sánh tất cả thuộc tính dự án và chạy thuộc tính cấu hình và tôi không thể tìm thấy sự khác biệt (ngoại trừ tên dự án và đường dẫn).

Thực thi cả hai dự án hoạt động hoàn hảo. Ví dụ: đầu ra của các câu lệnh print của tệp thử nghiệm được hiển thị ở trên luôn được hiển thị trong bảng điều khiển Eclipse.

Có ai có manh mối gì đang xảy ra ở đây không? Điều gì có thể là sự khác biệt mà làm cho nó hoạt động trên dự án A nhưng không phải trên dự án B?

Tôi đang sử dụng Python 2.7.1.

Khi tôi đặt

DEBUG_TRACE_LEVEL = 3 
DEBUG_TRACE_BREAKPOINTS = 3 

trong eclipse/plugins/org.python.pydev.debug/pysrc/pydevd_constants.py (theo yêu cầu trong các ý kiến), tôi nhận được giao diện điều khiển đầu ra sau đây:

Trình gỡ lỗi pydev: bắt đầu ('Thực thi tệp', 'C: \ misc \ web2py_src \ web2py \ web2py.py') ('đối số:', "['C: \\ misc \\ web2py_src \\ web2py \\ web2py.py '] ") (' Kết nối với ',' 127.0.0.1 ',': ',' 49565 ') (' Đã kết nối '), (' lệnh đã nhận ',' 501 \ t1 \ t1.1 ') gửi 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 

Hành vi này không thay đổi. Điểm ngắt trong ứng dụng B bị bỏ qua, trong khi điểm ngắt trong ứng dụng A hoạt động.

+0

Bạn đang sử dụng phiên bản python nào? Bạn có thể thay đổi eclipse \ plugins \ org.python.pydev.debug \ pysrc \ pydevd_constants.py và đặt DEBUG_TRACE_LEVEL = 3 và DEBUG_TRACE_BREAKPOINTS = 3, chạy chương trình của bạn trên cả hai trường hợp và thêm kết quả vào câu hỏi? –

Trả lời

1

Tôi đã gặp sự cố tương tự, nơi tôi không thể nhận điểm ngắt để hoạt động (pydev breakpoints not working).

Chưa có giải pháp nào, nhưng có thể hữu ích khi biết rằng tôi không sử dụng web2py.

Các vấn đề liên quan