我在调试时遇到问题...
突然间,我在调试时看不到大多数变量的值。
我设法在立即窗口中收到两条不同的消息:
无法获取本地或参数“参数”的值,因为它在此指令指针处不可用,可能是因为它已被优化掉。
and
表达式求值器中出现内部错误。
我已经尝试并检查了以下内容:
- 解决方案配置设置为调试(not发布)
- 项目 -> 设置 -> 构建 -> 优化代码是not set
- 工具 -> 选项 -> 调试 -> 使用管理兼容模式(不起作用)
您对我如何再次正确调试有任何进一步的想法吗? :(
提前致谢
Edit代码没什么特别的..当我尝试观察参数[Key]里面的内容时就会发生这种情况
public void AddOrUpdateQuartzJob(string jobName, IList<KeyValuePair<string, string>> parameters)
{
var jobDetail = this.GetJobDetail(jobName);
if (jobDetail != null)
{
foreach (var parameter in parameters)
{
jobDetail.JobDataMap[parameter.Key] = parameter.Value;
}
}
else
{
this.ScheduleNewJob(jobName, parameters);
}
}
我发现的最好的方法说服 JIT 编译器不要优化代码的方法是使用带有程序集名称的 INI 文件,该文件位于程序集及其内容所在的同一文件夹中 https://msdn.microsoft.com/en-us/library/9dd8z24x(v=vs.110).aspx:
[.NET Framework Debugging Control]
GenerateTrackingInfo=1
AllowOptimize=0
请注意,它必须是程序集的名称,而不是进程 EXE 的名称(除非它是您要调试的 EXE 程序集)。例如。如果你有一个集会MyCode.dll
INI 文件名是MyCode.ini
.
以下是一些幻灯片显示出差异:
通过优化:
没有优化:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)