Tôi đang cố gắng gỡ lỗi chương trình Python và tôi đã chèn dòng 'pdb; pdb.set_trace()' cổ điển vào một hàm, ngay trước cuộc gọi tạo ra một dấu vết ngăn xếp. Tuy nhiên, cuộc gọi đó dường như bị bỏ qua, tức là không có gì xảy ra và tôi không nhận được lời nhắc pdb.điều gì có thể khiến pdb.set_trace() bị bỏ qua?
Tại thời điểm đó của chương trình, chỉ có một chuỗi hoạt động. Không tìm thấy bản vá khỉ của mô-đun pdb.
Bất kỳ trợ giúp nào về điều có thể khiến cuộc gọi đến set_trace bị bỏ qua đều được hoan nghênh. Cảm ơn.
thông tin Hệ điều hành: bóp Debian + python trích 2.6.5
Code:
import threading
print threading.active_count()
import pdb
print pdb
pdb.set_trace()
print "*****"
root_resource.init_publisher() # before changing uid
đầu ra:
<lots of stuff>
1
<module 'pdb' from '/usr/lib/python2.6/pdb.pyc'>
*****
<stack trace in init_publisher>
Bạn có thể cung cấp mã để tạo lại mã này không? Các cuộc gọi 'print' có hoạt động từ đó không? Bạn đã thử 'pdb.pm()' chưa? (http://docs.python.org/library/pdb.html#pdb.pm) – katrielalex
Thật không may là tôi không thể tái tạo điều này một cách dễ dàng (nếu không tôi có thể đã đóng đinh nó ngay bây giờ). tác phẩm in, pdb.pm() không thành công vì tôi không có dấu vết ngăn xếp tại thời điểm đó (và ngoại lệ được sau đó sử dụng, vì vậy tôi không thể dễ dàng sử dụng pm() và python -i –