Точки останова не работают должным образом в DartEditor?

Я получаю неожиданное поведение в самом последнем редакторе Dart (версия 0.4.0_r18915).

У меня есть это минимальное приложение командной строки, которое должно было либо принимать аргумент командной строки, либо нет, и печатать сообщение hello -somenoe-. Приложение работает просто отлично. Но отладчики не могут остановиться в точках останова, установленных внутри каждого из тел операторов if. (Я хотел посмотреть на состояние приложения, если option.arguments.isEmpty было true или false)

var person;

main(){
    var options = new Options();
    if(options.arguments.isEmpty){
        person = "someone who forgot to pass a command-line argument";
    } else {
        person = options.arguments[0];
    }
    print("Hello, $person!");

}

Отладчик остановится в точках останова в других строках, но не в:

person = "someone who forgot to pass a command-line argument";

or in:

person = options.arguments[0];

person MrMambo007    schedule 04.03.2013    source источник
comment
Я могу воспроизвести аналогичную проблему на Win 64, той же сборки. Лучше всего использовать кнопку «Отправить отзыв» в редакторе или зарегистрировать ошибку на сайте dartbug.com — в тем временем поможет свободное использование команды print (например, print(options.arguments.isEmpty); )   -  person Chris Buckett    schedule 04.03.2013
comment
Кроме того, отправьте сообщение об ошибке на странице dartbug.com/new и вставьте сюда номер ошибки, чтобы мы могли подписаться и отметить . Спасибо!   -  person Seth Ladd    schedule 05.03.2013


Ответы (1)


Да, сообщите об ошибке. Я подозреваю, что отладчик может остановиться только в так называемой «безопасной точке» и что присваивание константы переменной не создает ее. Добавьте над ним строку, например print("breakpoint"); должно помочь, если это так. Но я также видел другие проблемы с точками останова, которые не срабатывали.

person Alan Knight    schedule 04.03.2013