23华软 python debug
2023年华为软件精英挑战赛,python语言,windows下在vscode实现调试。
文件目录树
1 | work |
vscode debug 配置
确保vscode
已经安装python
插件。
复制下面两个文件的内容。
launch.json
1 | { |
tasks.json
1 | { |
开始调试
打开main.py
文件,设置断点(不清楚设置在哪里可以多设置几个),vscode选择运行和调试(ctrl+shift+F9)
,开始调试(F9)
,会弹出错误提示框,点击取消,再次开始调试(F9)
,则成功进入调试界面。
调试界面有dbg
和dbg_gui
,分别对应不带图形化界面和带图形化界面的调试。
踩坑
忘记设置断点
一直显示成功进入调试界面,就是不能操控,不能选择下一步和查看变量。
折腾了半天竟然是忘记打断点了,哭
初始几帧无法调试
由于需要再次启动debug
,中间间隔时间内已经运行过几帧,比如最初判题器发送地图数据的过程无法调试。
可以在文件开头import time
,然后在程序运行最开始if __name__ == '__main__':
下time.sleep(5)
,这样休眠一段时间,这些时间内attach
上程序即可调试最初状态。
无法实现一键调试
已经是努力了很久找到的现在点两下调试的解决方案。
因为要attach
上已经启动的程序,所以要先启动了程序,不想每次都输入一长串命令,就以task
的方式,然而在launch
中使用 preLaunchTask
的方式会等待这个完成再开始调试,于是在task
中用isBackground
加problemMatcher
属性实现了在调试的同时启动任务,这就导致并不能监听端口,正确的顺序应该是task
启动一小段时间后去attach
上,所以只能第一次没连接上报错,第二次再重新连接。
现在的也不是不能用,先这样吧,如有更优雅的解决方案希望可以交流一下。
联系作者
如遇到什么问题,或有什么想法想交流一下可以联系。