2010-02-24 41 views
43

Làm thế nào để gỡ lỗi chương trình python trong emacs?Gỡ lỗi chương trình python trong emacs

tôi sử dụng python-mode.el

tôi nhận được tài liệu tham khảo như nhập khẩu pdb; pdb.set_trace();

nhưng không chắc chắn cách sử dụng.

Trả lời

41

Nhập M-x cd để thay đổi thư mục thành vị trí của chương trình bạn muốn gỡ lỗi. Loại M-x pdb. Bạn sẽ được nhắc với Run pdb (like this): pdb. Nhập tên chương trình (ví dụ: test.py).

Tại dấu nhắc (Pdb), nhập help để tìm hiểu cách sử dụng pdb.

Ngoài ra, bạn có thể đặt

import pdb 
pdb.set_trace() 

ngay trong chương trình của bạn (ví dụ test.py). Bây giờ, hãy nhập M-x shell để nhận lời nhắc trình bao. Khi bạn chạy chương trình của mình, bạn sẽ bị bán vào pdb tại thời điểm pdb.set_trace() được thực hiện.

+0

Sử dụng pdbtrack (thông qua trình bao M-x) có lẽ là giải pháp tốt hơn. Việc kiểm soát thư mục và môi trường dễ dàng hơn nhiều theo cách đó. –

+8

@matt với Mx pdb bạn có thể đặt điểm ngắt trong tệp nguồn và con trỏ sẽ hiển thị vị trí hiện tại của việc thực hiện khi bạn thực hiện: http://twistedmatrix.com/documents/current/core/howto/debug-with-emacs .html –

+0

Hướng dẫn bằng đồ họa có thể được tìm thấy tại đây: http://sunnyeves.blogspot.com/2011/04/debugging-python-on-emacs-ide.html – gt6989b

19

Đối với tôi, tôi cần phải thay thế mặc định "pdb" với

python -m pdb myscript.py 
7

Các realgud gói (có sẵn từ MELPA) hỗ trợ PDB (trong một gazillion gỡ rối khác), và có một loạt các tính năng gọn gàng mà PDB của Emac không có.

Điều tôi thích nhất là chế độ phím tắt. Khi bạn bắt đầu gỡ lỗi chương trình, bạn có thể nhấn n, s, c v.v. ngay trong cửa sổ nguồn, thay vì phải nhập các lệnh này trong bộ đệm PDB. Nó cũng hỗ trợ keybindings kiểu Visual-Studio với các phím chức năng (f10, f11, f5, v.v.).

Sau khi cài đặt RealGUD, bạn cần chạy M-x load-feature realgud để tải nó và bạn có thể bắt đầu pdb với M-x realgud:pdb.

+2

Tôi nên thêm rằng tôi có xung đột lợi ích nhỏ. Tôi tìm thấy gói gọn gàng đến nỗi tôi bắt đầu hack vào nó, và bây giờ trở thành người đồng bảo trì. –

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