Глюки Arduino IDE

RxMaxx
Offline
Зарегистрирован: 10.04.2020

День добрый.

Вот уже на протяжении нескольких лет, я периодически, т.е. не очень часто, создаю небольшие проекты на Arduino. В качестве среды программирования использую стандартную Arduino IDE (на текущий момент версия 1.8.12), использовать что-то более "тяжелое", тот же Eclipse, например, особого желания нет, стандартная IDE меня устраивает, если бы не одно НО: через некоторое время работы перестает корректно работать Ctrt+Z/Y, вместо отмены/повтора у меня происходит затирание куска кода, либо кусок кода из одного места перескакивает в другое, одним словом, код портится. Приходится все закрывать без сохранения и открывать заново. Некоторое время отмена/повтор работают нормально. 

Такая проблема наблюдается уже в течении нескольких лет, причем на разных машинах и под разными версиями винды. Обновление, переустановка, ничего радикально не меняют, глюк появляется неожиданно и так же пропадает на неопределенное время.

У кого-нибудь есть подобная проблема? Есть способ решения, кроме использования внешнего редактора? Гугл о такой проблеме, как будто бы, не слышал.

 

b707
Offline
Зарегистрирован: 26.05.2017

а вы часто пользуетесь CTRL-Z в текстовом редакторе? - я вот не могу представить такой ситуации, чтоб мне в Ардуино понадобился Undo/    вот в фотошопе - понятно, рука дрогнула, линию не так провел и так далее... А в тексте??

Мне кажется, подавляющее большинство людей, как и я,  не используют Undo в Ардуино - поэтому и с проблемой такой не сталкиваются и потому в Гугле ничего нет

RxMaxx
Offline
Зарегистрирован: 10.04.2020

Ну, видимо довольно часто, раз с такой проблемой сталкиваюсь периодически. Отменой пользуюсь, особенно когда на ноуте "на коленях" работаю, там больше шансов сделать опечатку, но проблема возникает независимо от того, ноут это или стационарный комп. Чаще всего это происходит когда я кусок кода из одного места в другой копирую/переношу, но бывает и просто при наборе текста.

P.S. Возможно это важно, у меня три раскладки: Рус, Eng и Deu. У немецкой клавиатуры, видимо "шутки ради" буквы Z и Y поменяны местами, так что использование  Ctrt+Z/Y часто приводит к непредвиденному результату, и часто вместо отмены происходит повтор, но это ладно, это терпимо, но в Arduino IDE происходит вообще что-то непонятное, в других редакторах такого нет. 

b707
Offline
Зарегистрирован: 26.05.2017

RxMaxx пишет:

 Отменой пользуюсь, особенно когда на ноуте "на коленях" работаю, там больше шансов сделать опечатку,

сделав опечатку в тексте - куда логичнее ее просто исправить, чем нажимать отмену... ну по крайней мере для меня.

 

Цитата:
Возможно это важно, у меня три раскладки: Рус, Eng и Deu.

вполне возможно, что это тоже влияет. И тоже обьясняет, почему с этой проблемой сталкиваются единицы. То есть я не спорю, что возможно это реальный глюк, но людей, у которых на компе три раскладки и которые, при этом, часто пользуются Undo - на планете исчезающе мало :))) поэтому вы не видите их в гугле...

kalapanga
Offline
Зарегистрирован: 23.10.2016

RxMaxx, если и есть в IDE такой глюк, то пользователи тут вряд ли чем-то помогут. Это надо к разработчикам обращаться. Идёте на их гитхаб, смотрите Issues. Там есть вопрос на вашу ситуацию похожий, ему больше года, но он ещё открыт. Ищется по слову "undo". Почитайте внимательно, если это Ваша ситуация, то можете в нём отписаться, что мол в версии такой-то воспроизводится так-то и так-то. Если это что-то другое, то свой issue заведите.

Судя по описанию это такой случай с которым масса пользователей может никогда и не столкнуться.

RxMaxx
Offline
Зарегистрирован: 10.04.2020

kalapanga пишет:

 если и есть в IDE такой глюк, то пользователи тут вряд ли чем-то помогут.

 Я ищу не столько помощи, сколько подтверждения, что это не я сам дурак, а реально глюк программы. Прежде чем беспокоить разработчиков, хотелось бы поймать глюк за руку, но, вот с воспроизводимостью проблема, глюк приходит неожиданно, и я не могу с уверенностью сказать, что я в этот момент именно делал.

kalapanga
Offline
Зарегистрирован: 23.10.2016

Способ воспроизведения бага - это конечно да, очень желательно иметь. Почитайте, чего тут человек пишет https://github.com/arduino/Arduino/issues/8476 и как он это воспроизводил - у него после многократных отмен вобще IDE крашилась. Так что наверное всё-таки "не дурак"! :)  

RxMaxx
Offline
Зарегистрирован: 10.04.2020

Спасибо.

Dihlofos
Offline
Зарегистрирован: 16.04.2020

RxMaxx пишет:

 Я ищу не столько помощи, сколько подтверждения, что это не я сам дурак, а реально глюк программы. Прежде чем беспокоить разработчиков, хотелось бы поймать глюк за руку, но, вот с воспроизводимостью проблема, глюк приходит неожиданно, и я не могу с уверенностью сказать, что я в этот момент именно делал.

 Глюк есть!

У меня и на работе и дома (на разных версиях IDE и на разных ОС) такой же пинцет.

Если мышкой блок текста не туда перетащил, считай что на "лягушку" наступил.

Уж лучше

кантрл-копи, кантрл-вставил, ... дальше в рифму.

b707
Offline
Зарегистрирован: 26.05.2017

Dihlofos пишет:

Если мышкой блок текста не туда перетащил

в ардуино ИДЕ? - можно перетаскивать текст мышкой??? - вы открываете мне глаза :)

WavGat
Offline
Зарегистрирован: 14.04.2020

Я тоже при перетаскивании мышкой пару раз глюк ловил, а Ctrl+Z хоть и использую, но пока тфу-тфу-тфу.

Dihlofos
Offline
Зарегистрирован: 16.04.2020

b707 пишет:

в ардуино ИДЕ? - можно перетаскивать текст мышкой??? - вы открываете мне глаза :)

а вот где то так.

за этим делом глюк и был обнаружен.

кстати, многие этому удивляются когда видят это первый раз. (я про перетаскивание мышем)

НоуХау
Offline
Зарегистрирован: 17.08.2021

решил поделиться с общественностью вот таким глюком (здесь переменная _bufCntrFlg просто увеличивается на 1 при очередном вызове метода класса):

и вот только такие изменения были сделаны и теперь стало нормально работать...вроде бы... :)

sadman41
Offline
Зарегистрирован: 19.10.2016

Инициализировать переменную не пробовали?

НоуХау
Offline
Зарегистрирован: 17.08.2021

Ей конечно же присвоено значение перед действиями с ней, но в методе. В классе обычно внутренние переменные присваиваются в конструкторе, если это необходимо, ну а у меня в методе.