Может ли кто-нибудь еще воспроизвести эту ошибку в отладчике / редакторе 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>, который, кажется, инициализируется не пустым.

У кого-нибудь еще возникает эта проблема? Я попытался сжать это в один проверяемый файл, но не смог воспроизвести; Я могу воспроизвести это только в реальном проекте.


person Naddiseo    schedule 15.12.2013    source источник
comment
Как насчет публикации отчета об ошибке на странице dartbug.com/new?   -  person Fox32    schedule 15.12.2013


Ответы (1)


Определенно звучит как ошибка. Как предлагает Fox32, сообщите об ошибке на http://dartbug.com/new.

Обычно такие ошибки возникают по двум причинам:

  • У отладчика есть побочный эффект: если отладчик (здесь Dart-редактор) вызывает фактический метод toString для видимых переменных, это может иметь побочный эффект. Чаще всего это случается с Iterables, у которых есть побочный эффект.
  • В виртуальной машине есть ошибка при отладке. Виртуальная машина должна компилировать код по-другому (например, отключить некоторые оптимизации), чтобы останавливаться в любом произвольном месте. Возможно, ваша точка останова вызывает ошибку.
person Florian Loitsch    schedule 15.12.2013
comment
Это были мои подозрения, но я хотел убедиться, что проблема не только у меня, прежде чем дать разработчикам дротиков больше работы. Но я все равно буду глючить. - person Naddiseo; 16.12.2013
comment
Похоже, это потому, что у моего toString есть побочные эффекты. - person Naddiseo; 16.12.2013
comment
Он может быть закрыт, как и предполагалось, но я все равно сообщу об ошибке. - person Florian Loitsch; 16.12.2013