我是靠谱客的博主 怕孤单冰棍,这篇文章主要介绍调试时设置断点后出现 此处无源代码可显示,现在分享给大家,希望可以做个参考。

现象:当前在原代码处设置断点,却在执行到此断点时“此处无源代码可显示”。

原因:多线程环境,如果你的一个while循环在不停读一个变量,如果在本先线程内,两次运行到读这个变量之间的代码没有写这个变量,代码在编译时会被优化成直接从寄存器读取而不是内存。如果其他线程会改写此变量,当前线程却会一直读入未改写的变量值。由于是优化成读寄存器了,当前的代码处就无法设置断点了。奇怪的是单线程环境不会出错,照理也是读寄存器的,应该还需要加个条件,其他线程必须改写了此变量。

解决:变量声明为volatile。

最后

以上就是怕孤单冰棍最近收集整理的关于调试时设置断点后出现 此处无源代码可显示的全部内容,更多相关调试时设置断点后出现内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(178)

评论列表共有 0 条评论

立即
投稿
返回
顶部