【问题标题】:Invalid random.NextDouble values appear when debugging in MonoDevelop在 MonoDevelop 中调试时出现无效的 random.NextDouble 值
【发布时间】:2014-09-11 20:18:46
【问题描述】:

在 Linux Mint 17 上运行 MonoDevelop 4.0.12 并在使用 Random.NextDouble() 时遇到一个奇怪的问题。

考虑一下:

Random r = new Random ();
double dd = r.NextDouble ();
Console.WriteLine (dd);
dd = r.NextDouble ();
Console.WriteLine (dd);

在monodevelop中运行,一切都很好

0.226428853800577
0.331709416335702

(不管我运行多少次)

在monodevelop中调试,一切都不是

3.75
0

NextDouble 应该给我一个介于 0.0 和 1.0 之间的数字。更奇怪的是,调试器显示dd这两个值的值分别为5.25和3.5

每次运行时,控制台都会显示不同(错误)的输出,但调试器显示的输出相同。

有什么想法吗?

我使用 libmono-debugger-soft4.0a-cil 作为调试器 (v3.2.8+dfsg-4ubuntu1)。我尝试为不同版本的 .NET 构建,并为 Random() 提供一个明确的种子,同样的事情。

MonoDevelop
Version 4.0.12
Runtime:
    Mono 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1) (64-bit)
    GTK 2.24.23
    GTK# (2.12.0.0)

【问题讨论】:

  • 查看int dd = (int)(r.NextDouble () * int.MaxValue); 时结果是否“更好”(尝试通过检查double 变量来隔离值。)
  • 无论我调用多少次,它总是给出相同的值 (2147483645)。无论是在显示器上还是在调试器中。运行的时候,给出了2个不同的值……很奇怪!
  • 我什么也没得到。在 VS 中运行良好:
  • 我确定它确实如此:)。感谢收看。

标签: debugging mono monodevelop


【解决方案1】:

从官方存储库中删除所有单声道并从this PPA 安装,现在一切正常。

必须是使用 Mint 17 (Ubuntu 14.04) 打包的 monodevelop、调试器或运行时中的错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 1970-01-01
    • 2019-02-27
    • 2020-09-11
    • 1970-01-01
    • 2017-09-21
    相关资源
    最近更新 更多