概述
现象:当前在原代码处设置断点,却在执行到此断点时“此处无源代码可显示”。
原因:多线程环境,如果你的一个while循环在不停读一个变量,如果在本先线程内,两次运行到读这个变量之间的代码没有写这个变量,代码在编译时会被优化成直接从寄存器读取而不是内存。如果其他线程会改写此变量,当前线程却会一直读入未改写的变量值。由于是优化成读寄存器了,当前的代码处就无法设置断点了。奇怪的是单线程环境不会出错,照理也是读寄存器的,应该还需要加个条件,其他线程必须改写了此变量。
解决:变量声明为volatile。
最后
以上就是怕孤单冰棍为你收集整理的调试时设置断点后出现 此处无源代码可显示的全部内容,希望文章能够帮你解决调试时设置断点后出现 此处无源代码可显示所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复