问题背景
前些天在写C++,使用的是mingw64。今天兴起了解了一会python,并且应大神推荐使用了 Anaconda(https://www.liaoxuefeng.com/wiki/1016959663602400/1017493741106496)。
几经折腾,可以在VsCode中比较顺利地进行python编程了。在这些折腾中,包含了设置环境变量等。
夜深人静准备写C++时,发现不能调试!出现的现象是这样的:
解决过程
菜鸟一枚,找了半天vscode相关的json设置方法,没有解决。我又实在想不通为啥GDB不能启动会跟 Anaconda有关系。
最终硬着头皮搜索了一下错误提示里的 site.py 这个文件。赫然发现 mingw64 文件夹中居然有这样一个文件!
于是想到,应该是GDB需要一个site.py文件,但是由于环境变量的设置,让它先在Anaconda的目录中找到了,但是由于二者不是一个版本,于是出现了问题。
我试了试在cmd命令中检查gdb的版本,果然也是同样的问题。
解决办法
试了试与Anaconda有关的变量,最终发现,如果把环境变量PYTHONPATH中的内容改掉,就可以让GDB找不到这个错误版本的site.py文件,这样GDB就恢复正常了。(至于它怎么还是能找到正确的文件,我还没有仔细研究)。
注意事项
更改环境变量后重启 cmd 或 vscode才能看到效果。
后续延伸
现在只是暂时修复好了GDB,估计这样的环境变量python那边又会出问题,编python的时候我再把环境变量改回去。如果切换不是太过频繁,现在的操作也可以接受。但是最好的办法可能是更新GDB的版本了(本人菜鸟,mingw64是离线版本,也不知道有没有可以用那个高版本site.py的GDB版本)。