我想使用PyCharm,但我确实需要在主线程以外的线程中使用断点。
在这个示例代码中,PyCharm不会在线程函数中断。有办法解决这个问题吗?
import time, threading
def f():
while True:
time.sleep(1.0)
print 'tick-tock' # Put a breakpoint here...
th = threading.Thread(target=f)
th.start()
time.sleep(30)
print 'done.'
编辑:平台详情:Mac OS 10.9,Python 2.7.6,PyCharm 3.4.1
答案 0 :(得分:1)
这似乎对我有用:
#!/usr/bin/python
import time
import threading
import pdb
def f():
while True:
time.sleep(1.0)
print 'tick-tock' # Put a breakpoint here...
pdb.set_trace()
th = threading.Thread(target=f)
th.start()
time.sleep(30)
print 'done.'
执行期间:
┌───┤/tmp├──────────────────────────────────────┤0.43├──────┤20140612.211049├───
└─┤goncalog@darkside:pts/1│ret=1├────> python test.py
tick-tock
> /tmp/test.py(8)f()
-> while True:
(Pdb) list
3 import time
4 import threading
5 import pdb
6
7 def f():
8 -> while True:
9 time.sleep(1.0)
10 print 'tick-tock' # Put a breakpoint here...
11 pdb.set_trace()
12
13 th = threading.Thread(target=f)
(Pdb) c
tick-tock
> /tmp/test.py(8)f()
-> while True:
(Pdb)