额。这个问题是我百度到答案的,转载一下,自己留笔。
http://ask.csdn.net/questions/24239
http://www.cnblogs.com/loongfee/archive/2012/10/26/2741441.html
有两种情况可能引起单步调试时显示的变量值与实现情况有差别,或系统直接提示该变量没有定义:
1) 原始代码与编译代码版本不一致引起的,请使用下列方法解决:
VS2012菜单[tools]->[options]->(Debugging)->General-->勾选(Require source files to exactly....)
2)在设置生成debug版本代码是选择了生成优化代码的选项,所以在跟踪时部分变量被编译器优化掉了。遇到这种情况首先关注工程属性选项:
Property Pages-->C/C++ --> General -->[Optimization] 大概使用Disabled (/Od)就不会出现单步跟踪跳行的情况了。
有两种情况可能引起单步调试时显示的变量值与实现情况有差别,或系统直接提示该变量没有定义:
1) 原始代码与编译代码版本不一致引起的,请使用下列方法解决:
VS2012菜单[tools]->[options]->(Debugging)->General-->勾选(Require source files to exactly....)
2)在设置生成debug版本代码是选择了生成优化代码的选项,所以在跟踪时部分变量被编译器优化掉了。遇到这种情况首先关注工程属性选项:
Property Pages-->C/C++ --> General -->[Optimization] 大概使用Disabled (/Od)就不会出现单步跟踪跳行的情况了。
1) 原始代码与编译代码版本不一致引起的,请使用下列方法解决:
VS2012菜单[tools]->[options]->(Debugging)->General-->勾选(Require source files to exactly....)
2)在设置生成debug版本代码是选择了生成优化代码的选项,所以在跟踪时部分变量被编译器优化掉了。遇到这种情况首先关注工程属性选项:
Property Pages-->C/C++ --> General -->[Optimization] 大概使用Disabled (/Od)就不会出现单步跟踪跳行的情况了。