Stu*_*erg 13 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.'
Run Code Online (Sandbox Code Playgroud)
编辑:平台详细信息:Mac OS 10.9,Python 2.7.6,PyCharm 3.4.1
这似乎对我有用:
\n\n#!/usr/bin/python\n\nimport time\nimport threading\nimport pdb\n\ndef f():\n while True:\n time.sleep(1.0)\n print 'tick-tock' # Put a breakpoint here...\n pdb.set_trace()\n\nth = threading.Thread(target=f)\nth.start()\ntime.sleep(30)\nprint 'done.'\nRun Code Online (Sandbox Code Playgroud)\n\n执行期间:
\n\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4/tmp\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa40.43\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa420140612.211049\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\xa4goncalog@darkside:pts/1\xe2\x94\x82ret=1\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80> python test.py \ntick-tock\n> /tmp/test.py(8)f()\n-> while True:\n(Pdb) list\n 3 import time\n 4 import threading\n 5 import pdb\n 6 \n 7 def f():\n 8 -> while True:\n 9 time.sleep(1.0)\n 10 print 'tick-tock' # Put a breakpoint here...\n 11 pdb.set_trace()\n 12 \n 13 th = threading.Thread(target=f)\n(Pdb) c\ntick-tock\n> /tmp/test.py(8)f()\n-> while True:\n(Pdb) \nRun Code Online (Sandbox Code Playgroud)\n