PyCharm:我如何在多线程代码中使用断点?

时间:2014-06-12 20:01:38

标签: python multithreading pycharm

我想使用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

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)