Tôi đã sử dụng b "classname: function" hoặc "b classname :: function", và những hàm này không hoạt động. Bây giờ tôi sử dụng "b linenum" như một workaround.but như tôi modifiy mã của tôi thường xuyên, linenum changes.So làm thế nào để thực hiện một breakpoint về chức năng thành viên lớp trong python? Tôi google nó & & đọc hướng dẫn python, và không có câu trả lời trực tiếp .cảm ơn!cách tạo điểm ngắt trên hàm thành viên lớp của python?
10
A
Trả lời
14
Trong pdb
, trình gỡ lỗi Python, breakpoint có thể được thiết lập với
b classname.methodname
sau khi định nghĩa lớp đã được phân tích cú pháp.
Ví dụ,
% pdb ~/pybin/test.py
> /home/unutbu/pybin/test.py(4)<module>()
-> class Foo(object):
(Pdb) l
1 #!/usr/bin/env python
2 # coding: utf-8
3
4 -> class Foo(object):
5 def bar(self): pass
6
7 foo=Foo()
8 foo.bar()
[EOF]
Thiết breakpoint trước khi phân tích các lớp không:
(Pdb) b Foo.bar
*** The specified object 'Foo.bar' is not a function
or was not found along sys.path.
nhưng sau khi phân tích các lớp:
(Pdb) n
> /home/unutbu/pybin/test.py(7)<module>()
-> foo=Foo()
(Pdb) l
2 # coding: utf-8
3
4 class Foo(object):
5 def bar(self): pass
6
7 -> foo=Foo()
8 foo.bar()
[EOF]
thiết lập các công trình breakpoint :
(Pdb) b Foo.bar
Breakpoint 1 at /home/unutbu/pybin/test.py:5
(Pdb)
(Pdb) r
> /home/unutbu/pybin/test.py(5)bar()
-> def bar(self): pass
3
Đối với một điểm break dai dẳng, trên dòng trước khi bạn muốn phá vỡ, bạn cũng có thể sử dụng:
import pdb; pdb.set_trace()
Xem python doc để xem chi tiết hơn.
Các vấn đề liên quan
- 1. Cách đặt điểm ngắt trên hàm python trong gdb
- 2. Thành viên lớp học Python Khởi tạo
- 3. Lớp con trỏ hàm thành viên
- 4. Đặt điểm ngắt trên hàm có tên
- 5. gọi hàm tạo của một thành viên lớp trong hàm tạo
- 6. Cách khởi tạo shared_ptr là thành viên của lớp học?
- 7. Về sizeof của một hàm thành viên lớp con trỏ
- 8. Điểm thành viên tham chiếu lớp cho thành viên khác trong cùng một lớp
- 9. Gọi hàm thành viên từ một hàm tạo
- 10. Các thành viên lớp tĩnh python
- 11. Python phân biệt hàm gọi lại là thành viên của một lớp như thế nào?
- 12. std :: bind() - ing một hàm thành viên được bảo vệ cơ sở từ hàm thành viên của lớp dẫn xuất
- 13. Cách tạo bản sao của hàm python
- 14. Khi nào các hàm thành viên đặc biệt của một lớp mẫu được khởi tạo?
- 15. Gọi định nghĩa lớp cơ sở của hàm thành viên ảo với con trỏ hàm
- 16. Điểm ngắt gdb trên pthread_create
- 17. Chỉ định một hàm thành viên của lớp làm bạn của một lớp khác?
- 18. Tạo thuộc tính python có cùng tên với tên thành viên của lớp
- 19. Khởi tạo thành viên chung của Java
- 20. Khởi tạo các thành viên tĩnh của một lớp templated
- 21. Tìm hằng số của hàm thành viên
- 22. Hàm con trỏ tới hàm thành viên
- 23. Hàm con trỏ tới hàm thành viên của lớp mẫu? (C++)
- 24. C++ std :: thread của hàm thành viên
- 25. Cách khởi tạo cấu trúc thành viên trong danh sách khởi tạo của lớp C++?
- 26. Làm cách nào để chuyển một hàm thành viên của lớp như một cuộc gọi lại?
- 27. Tại sao các đối tượng thành viên được khởi tạo sau hàm tạo của lớp siêu hạng?
- 28. Cách gọi hàm thành viên mẫu?
- 29. Cách gọi hàm thành viên thông qua con trỏ hàm thành viên?
- 30. Khởi tạo các biến thành viên trong phần đầu của định nghĩa lớp hoặc trong hàm tạo?
cảm ơn! Nó hoạt động. Đặt loại điểm ngắt sau khi phân tích cú pháp lớp là đặc biệt quan trọng. – user1058909