Несколько дней ковырялся в плагинах... Выяснил, что падение плагина iCarDuino (а вместе с ним и iCarDS) происходит во время выполнения этой команды C#:
Код:
calibrate_a = Convert.ToDouble(SDK.GetInfo("=$calibrate_a$")) / 100.0;
Этот совсем безобидный вариант вышеуказанной команды:
Код:
calibrate_a = Convert.ToDouble("48");
также вызывает падение.
Аналогичные команды:
Код:
calibrate_a = double.Parse("48");
Код:
double.TryParse("48", out calibrate_a);
тоже вызывают падение.
Все эти три команды - это конвертирование строки в число с плавающей запятой. Причем, никакого исключения (Exception) не генерируется, просто падение с записью в журнале событий. Что странно, после нескольких перезапусков iCarDS - все начинает работать нормально.
Поиск в Гугле ничего толком не дал. Было что-то про DEP (предотвращение выполнения данных), но его отключение не повлияло.