相信大多数程序员对于使用python语言或是在linux进行C语言程序编程常用的调试方法是printf,这个是一个大家都能相到的办法,遇到问题首先就是增加打印信息,查看log记录。对于产品部署在外面,是不一个不错的方法。但是这种方法相对于能进行在线调试的方法来说可以获得的信息量少,分析问题不那么快速。
2、在线调试python是支持在线调试的,可能相关的书籍并没有对此做过多介绍,导致我认为它好像就不能在线调试一样。就在上周我遇到了一个QT界面程序长时间运行后界面卡死后,为了寻找解决问题的原因,我才想到了在线调试,一查发现QT还真支持在线调试。那么怎么使用在线调试呢,python的原生IDE是支持在线调试的,我使用的代码编译器vscode软件,vscode软件基于python的调试器提供了友好的界面支持,用起来体验更好。我就直接使用vscode进行了在线调试。如下图,打开程序选择右上角Debug Python File即可运行了。
进入调试界面后,左边窗口显示了程序运行的变量,调用堆栈,断点,如果需要在特定的代码位置停止观察数据,在行号前点击一下,出了个红点就可以了。
3、解决问题使用在线调试的方法,运行软件4个小时,发现了QT软件界面卡死,程序在一个while循环中出不来,如下图。即当pos = -1时,while循环无法退出,找到问题,解决问题就很容易了。



