其他人可以在Dart调试器/编辑器中重现这个错误吗?

时间:2013-12-15 04:50:03

标签: dart dart-editor

为了我的理智,有人可以验证我在飞镖编辑器中遇到的一个奇怪的错误吗?

我正在使用网站主页上的最新dart编辑器,我下载,解压缩,然后运行“DartEditor”可执行文件。 (我没有清除以前存储在其他地方的任何设置,但我认为这不会改变问题。)

Dart Editor version 1.0.0_r30798 (STABLE)
Dart SDK version 1.0.0.10_r30798
  • 下载我的存储库:https://github.com/Naddiseo/dart-sprintf.git
  • 切换到debugger_ide_test分支
  • 在控制台上(不在编辑器中)运行dart test/sprintf_test.dart输出应为:

    decimal=1, exp=0, digits=[5, 4, 6, 6]

  • 接下来,启动编辑器,然后打开文件夹。

  • 运行相同的文件,它应该打印出相同的结果。
  • 现在是奇怪的部分。在lib / src / formatters / float_formatter.dart中设置一个断点:17这是构造函数的第一行。
  • 再次在编辑器中运行测试文件,然后在获得断点后继续。

使用断点我得到以下输出:

decimal=1, exp=0, digits=[0, 0, 5, 4, 6, 6]

我将它归因于List<String>构造函数,它似乎初始化为不为空。

有没有其他人遇到这个问题?我试图将其压缩成可测试的单个文件,但无法重现;我只能在实际项目中重现它。

1 个答案:

答案 0 :(得分:1)

绝对听起来像个臭虫。正如Fox32建议的那样,请在http://dartbug.com/new上提交一个错误。

一般来说,这类错误有两个原因:

  • 调试器有副作用:如果调试器(这里是Dart编辑器)调用可见变量的实际toString方法,它可能会产生副作用。最常见的情况是Iterable会产生副作用。
  • VM在调试时有错误。 VM必须以不同方式编译代码(例如禁用某些优化)以停止在任意位置。可能是你的断点触发了那里的bug。