python – pdb无法在另一个线程中断?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – pdb无法在另一个线程中断?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1400字,纯文字阅读大概需要3分钟。
内容图文
考虑这个多线程程序:
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()
当我用pdb调试这个程序时,在提示符下我首先在两个print语句的每一个上设置一个断点.然后我继续pdb在print’hola’中断.我再次继续看到打印在另一个线程中的效果,但pdb不会中断.
帮助命令没有列出任何东西来切换像gdb这样的线程上下文……所以……在一个线程上下文中是否只能设置一个在另一个上下文中跳转的断点?
解决方法:
这对我有用:
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()
这给了我:
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)
这是在Windows 7和Python 2.7.2下.操作系统和操作系统您正在使用Python版本吗?
内容总结
以上是互联网集市为您收集整理的python – pdb无法在另一个线程中断?全部内容,希望文章能够帮你解决python – pdb无法在另一个线程中断?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。