2012-10-10 35 views
7

xem xét đa luồng chương trình này:pdb không thể ngắt trong chuỗi khác?

import threading 

class SomeThread(threading.Thread): 
    def run(self): 
    a = 1 
    print a 

def main(): 
    print 'hola' 
    someThread = SomeThread() 
    someThread.start() 

if __name__ == '__main__': 
    main() 

Khi tôi gỡ lỗi chương trình này với pdb, tại dấu nhắc đầu tiên tôi đặt một điểm break ở mỗi câu lệnh in hai. Rồi tôi tiếp tục. pdb ngắt tại print 'hola'. Tôi tiếp tục một lần nữa và thấy hiệu quả của bản in trong chủ đề khác, nhưng pdb không phá vỡ.

Lệnh trợ giúp không liệt kê bất cứ điều gì để chuyển đổi ngữ cảnh chuỗi như gdb ... vì vậy ... chỉ là không thể trong ngữ cảnh một luồng để đặt điểm ngắt sẽ đi trong ngữ cảnh khác?

Trả lời

5

này làm việc cho tôi:

import threading 
import pdb 

class SomeThread(threading.Thread): 
    def run(self): 
    a = 1 
    print a 
    pdb.set_trace() 

def main(): 
    print 'hola' 
    pdb.set_trace() 
    someThread = SomeThread() 
    someThread.start() 

if __name__ == '__main__': 
    main() 

nào mang lại cho tôi:

C:\Code>python b.py 
hola 
> c:\code\b.py(13)main() 
-> someThread = SomeThread() 
(Pdb) l 
    8   pdb.set_trace() 
    9 
10  def main(): 
11  print 'hola' 
12  pdb.set_trace() 
13 -> someThread = SomeThread() 
14  someThread.start() 
15 
16  if __name__ == '__main__': 
17  main() 
[EOF] 
(Pdb) c 
1 
--Return-- 
> c:\code\b.py(8)run()->None 
-> pdb.set_trace() 
(Pdb) l 
    3 
    4  class SomeThread(threading.Thread): 
    5  def run(self): 
    6   a = 1 
    7   print a 
    8 ->  pdb.set_trace() 
    9 
10  def main(): 
11  print 'hola' 
12  pdb.set_trace() 
13  someThread = SomeThread() 
(Pdb) 

Đây là hệ điều hành Windows 7 và với Python 2.7.2. Bạn đang sử dụng phiên bản Python & Python nào?

0

sau khi bạn nhấn breakpoint đầu tiên của bạn, tôi giả sử bạn đang đẩy mạnh với (n) dòng tiếp theo khi bạn nhận được đến dòng này

someThread.start() 

chắc chắn rằng bạn đang sử dụng (các) bước vào và không (n) tiếp theo. pdb commands

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