【发布时间】:2019-11-01 01:39:20
【问题描述】:
我想在我的 C 代码中找到 NaN 值的第一次出现。我目前正在使用 Visual Studio 2017 调试器。
有没有简单的方法来做到这一点? 我想象一个检查范围内所有变量的条件,如果 NaN 发生在那一点上中断。好像没有这个功能。有人有接近的东西吗?我也对其他调试解决方案持开放态度(使用 Matlab C-Mex-Files 运行)。
【问题讨论】:
-
您可以打印“NaN”,而无需使用具有该值的单个变量:
x = -2.718281; printf("%f\n", log(x)); -
我认为你应该开发/设计你的算法,包括任何必要的检查,这样就不会发生这种情况。
-
@PaulOgilvie:设计和开发不产生 NaN 的算法等同于设计和开发没有错误的算法。这是一个未解决的问题。换句话说,不管理论如何,复杂软件的人类开发是不完美的,建议某人设计和开发他们的算法不产生 NaN 就像告诉人们不要写错误一样无用。
-
@EricPostpischil,我想我同意。但随后他的调试请求没有任何目的。相反,他应该设计错误处理 [NaN 可能发生的地方]。
标签: c visual-studio visual-studio-2017