2014-09-30 22 views
7

Có cách nào để nói với pyCharm rằng nó nên bỏ qua mã khung? Trình gỡ lỗi nên bỏ qua tất cả các dòng không phải từ tôi.pyCharm Gỡ lỗi: bỏ qua mã khuôn khổ

Trong trường hợp của tôi nó là rất dễ dàng để kể mà mã Tôi muốn gỡ lỗi và đó không:

  • Mã trong virtualenv lib nên bị bỏ qua
  • Mã trong virtualenv src nên được sửa lỗi.

Nếu tôi nhấn F7 (bước vào), nó sẽ bỏ qua tất cả các dòng không phải từ cơ sở mã của tôi.

+0

Việc thiếu hộp đen này cũng làm tôi khó chịu. Tôi muốn đề xuất gửi yêu cầu tính năng. –

+1

có thể trùng lặp của [Gỡ lỗi với pycharm, cách bước vào dự án, mà không cần nhập thư viện django] (http://stackoverflow.com/questions/15164565/debugging-with-pycharm-how-to-step-into-project-without -entering-django-librar) –

Trả lời

6

[Update Tháng 5 năm 2015: giới thiệu trong PyCharm 4,5]

Có hai tính năng mới bây giờ, một trong số đó là người mà bạn yêu cầu, nhưng tôi đề cập đến một trong những khác cũng bởi vì nó tại chỗ là rất gần.

Từ các ghi chú 4,5 phát hành:

Bước vào Mã My

Stay tập trung vào mã của bạn bằng cách nói với các debugger để bước chỉ thông qua mã dự án của bạn, như trái ngược với bước qua các nguồn thư viện.

[...]

Bỏ qua Thư viện tập tin

Các debugger được cải thiện với tùy chọn 'Bỏ qua thư viện files' mới. Sử dụng nó để có trình gỡ lỗi dừng bên trong mã của bạn trong trường hợp ngoại lệ được nêu ra trong một mô-đun thư viện, thay vì dừng bên trong mã thư viện.

[Cập nhật sau khi tìm hiểu về blackboxing thư viện trong gỡ lỗi] Trong answer này nó được đề cập rằng bạn có thể thêm các module để bỏ qua vào "DONT_TRACE dict trong /helpers/pydev/pydevd.py"

Và có sự cố mở trên the issue tracker.

[câu trả lời ban đầu] Không thể bỏ qua mã như thế đó, nhưng bạn có thể linh hoạt chuyển đổi giữa đi bộ qua các dòng mã của dòng và làm cho bước nhảy lớn trong một phiên debug chạy bằng cách đơn giản thêm breakpoint khác (trong khi gỡ lỗi - các điểm ngắt có thể được thay đổi trong phiên gỡ lỗi đang chạy) tại vị trí sau mã thư viện bạn muốn bỏ qua và nhấn 'Tiếp tục Chương trình' trong Trình gỡ lỗi. Mã thư viện bị bỏ qua và bạn đã quay lại mã của mình. Bạn cũng có thể muốn sử dụng các điểm ngắt có điều kiện để đảm bảo rằng chương trình đột nhập vào trình gỡ lỗi chính xác khi chương trình ở trạng thái bạn muốn: nhấp chuột phải vào điểm ngắt và nhập điều kiện phải đánh giá là True in bối cảnh của dòng đó. The conditional breakpoint makes sure that the execution stops when idx has the desired value.

+0

Đây là công việc nhiều hơn một tính năng blackboxing đơn giản sẽ làm cho nó. –

+0

@Oliver Tôi biết rằng tôi có thể bỏ qua mã bằng tay như bạn giải thích. Turbo Pascal có tính năng này. Tôi nghĩ đó là khoảng năm 1993. :-) – guettli

+1

@guettli o.k. bây giờ tôi hiểu rồi. Đối với tôi câu hỏi của bạn chỉ là không được nêu rõ ràng và sau đó tôi thực sự không biết về khái niệm của blackboxing. Khái niệm tốt đẹp, nhưng sau đó đáng buồn không được hỗ trợ bởi pycharm nào: http://forum.jetbrains.com/thread/PyCharm-2450 (Tôi đoán). –

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