2010-08-09 29 views

Trả lời

9

Nếu bạn đặt

import pdb 
pdb.set_trace() 

trong mã của bạn, ứng dụng web sẽ giảm xuống còn một phiên debugger pdb khi thực hiện set_trace.

Cũng hữu ích, là

import code 
code.interact(local=locals()) 

mà giọt bạn đến thông dịch viên python. Nhấn Ctrl-d sẽ tiếp tục thực hiện.

Tuy nhiên hữu ích hơn, là

import IPython.Shell 
ipshell = IPython.Shell.IPShellEmbed() 
ipshell(local_ns=locals()) 

mà giọt bạn thành một phiên IPython (giả sử bạn đã cài đặt IPython). Tại đây, nhấn Ctrl-d tiếp tục thực hiện.

0

sử dụng Python Debbuger, import pdb; pdb.set_trace() chính xác nơi bạn muốn bắt đầu gỡ lỗi và thiết bị đầu cuối của bạn sẽ tạm dừng trong dòng đó. Thông tin thêm ở đây: http://plone.org/documentation/kb/using-pdb

3

Nếu bạn đang chạy ứng dụng web của bạn thông qua apache và mod_wsgi hay mod_python, cả hai cung cấp một số hỗ trợ cho bước qua gỡ lỗi với pdb. Bí quyết là bạn phải chạy apache ở chế độ nền trước với cờ -X.

Trên hệ thống Gentoo của tôi, tôi làm điều này với (điều này chủ yếu là lệnh cùng một kịch bản apache init sử dụng thay thế cho -k bắt đầu với -X):

/usr/sbin/apache2 -D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PYTHON -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -X 
+0

Bạn cũng có thể cần bật tùy chọn PythonEnablePdb như được ghi trong tài liệu modpython tại đây - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad

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