(решено)sigfpe+invalid floating point operation на контролах

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

(решено)sigfpe+invalid floating point operation на контролах

Сообщение vitaly_l » 08.07.2017 12:01:46

Всем привет и хорошего настроения!

Проблема наблюдается при работе - исключительно с графическим планшетом.

С отладчиком, вылетает: sigfpe, а без отладчика invalid floating point operation

Сбой где-то в стандартном обработчике контролов Лазаруса. Потому что, точно такой же сбой, иногда высакивает при клике по контролам и самого Лазаруса (если кликать пером графического планшета), наблюдал когда попробовал сделать тестовый проект и устанавливал стринг-грид на форму. Соответственно, это возможно драйвер планшета или около того, какая-то несовместимость планшета с контролами Лазаруса. Но при этом в других программах - такого сбоя нет. Соответственно связь сбоя, наблюдается именно с Лазарусом.

Насколько я понимаю, в какой-то момент, туда или оттуда - передаётся 0 и это вызывает сбой драйвера, при кликах на контролы. При этом, если программу или Лазарус - закрыть, то планшет продолжает работать нормально. Кроме того и программа, тоже не падает, а продолжает работать, но только с мышкой. Соответственно подвешивается какой-то временный интерфейс? (или около того)

ВОПРОСЫ:
Уважаемые, наимудрейшие и наиумнейшие, программисты - придумайте пожалуйста:

:?: как можно отловить такой сбой?
:?: как можно запретить такой exception при sigfpe?
:?: как можно запретить такой exception при invalid floating point operation?
:?: Можно ли: найти, отловить или запретить такой сбой?


.
Последний раз редактировалось vitaly_l 11.07.2017 00:19:12, всего редактировалось 2 раз(а).
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2855
Зарегистрирован: 31.01.2012 16:41:41

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение zub » 08.07.2017 12:48:29

>>Сбой где-то в...
Учимся пользоваться отладчиком
zub
долгожитель
 
Сообщения: 2067
Зарегистрирован: 14.11.2005 23:51:26

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение vitaly_l » 08.07.2017 12:54:48

zub писал(а):Учимся пользоваться отладчиком

Научите. Я им не пользуюсь, я всю отладку, делаю как в PHP - дедовскими методами. утечки памяти при сбое тоже нет. Программа остаётся работоспособной.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2855
Зарегистрирован: 31.01.2012 16:41:41

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение olegy123 » 08.07.2017 12:59:21

Включи
"Генерировать отладочную информацию для GDB.."
"Выдовать номера строк в ошибках.."
соответственно запускать через консоль: gdb [прога]
в консолье ответы получишь.

Если включить "Использовать модуль Heaptrc" .. то приложение по завершении будет давать информацию об утечках. Тоже в консоль.
olegy123
энтузиаст
 
Сообщения: 519
Зарегистрирован: 25.02.2016 12:10:20

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение zub » 08.07.2017 13:07:51

1. В иде. тут всё элементрно, просто воспроизведи ошибку и загляни в вид\окна отладки\стек вызовов
2. Без иде тоже просто - http://wiki.freepascal.org/Creating_a_B ... e_with_GDB
3. Получай стек при ошибке програмно и пиши в лог.

Во всех вариантах LCL и программа должны быть собраны с отладочной информацией. если ошибка в ртл - то и компилятор придется собрать с отладочной инфой
zub
долгожитель
 
Сообщения: 2067
Зарегистрирован: 14.11.2005 23:51:26

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение Лекс Айрин » 08.07.2017 13:10:31

vitaly_l, сначала укажи в каких контролах ошибка... и какая.

vitaly_l писал(а):Насколько я понимаю, в какой-то момент, туда или оттуда - передаётся 0 и это вызывает сбой драйвера, при кликах на контролы.


Скорее, -1

vitaly_l писал(а):я всю отладку, делаю как в PHP - дедовскими методами.


Если это то, что я думаю, то дедовскими способами это тоже легко отлаживается.

должно быть что-то типа:
Код: Выделить всё
//If SimpleList.ItemIndex = -1 then exit;// указатель на текущий элемент не установлен.
    FEditors.Editors.SelText:=SimpleList.Items[SimpleList.ItemIndex];

закомментирован код который придется добавить.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3811
Зарегистрирован: 19.02.2013 16:54:51

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение vitaly_l » 08.07.2017 13:39:08

Если бы, всё было так просто я бы не спросил. Вот что выдаёт мне отладчик. При этом после вылета, программа работает и память не рушится.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2855
Зарегистрирован: 31.01.2012 16:41:41

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение zub » 08.07.2017 13:42:30

А всё именно так просто. просто читать надо внимательнее что тебе пишут
zub
долгожитель
 
Сообщения: 2067
Зарегистрирован: 14.11.2005 23:51:26

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение vitaly_l » 08.07.2017 13:44:46

zub писал(а):А всё именно так просто. просто читать надо внимательнее что тебе пишут

Зубик! Вы что знаете как это починить???
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2855
Зарегистрирован: 31.01.2012 16:41:41

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение zub » 08.07.2017 13:46:04

>>1. В иде. тут всё элементрно, просто воспроизведи ошибку и загляни в вид\окна отладки\стек вызовов
zub
долгожитель
 
Сообщения: 2067
Зарегистрирован: 14.11.2005 23:51:26

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение vitaly_l » 08.07.2017 13:52:04

zub писал(а):вид\окна отладки\стек вызовов

О круто! Такой штукой, я ещё никогда не пользовался. Но это мне не помогло, т.к. я не понимаю, что и где :cry: .
Вот скрин:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2855
Зарегистрирован: 31.01.2012 16:41:41

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение Лекс Айрин » 08.07.2017 13:53:34

vitaly_l писал(а): Вот что выдаёт мне отладчик.


это не отладчик.

Тебе не нужно ассемблерное окно. По хорошему, тебе даже не нужно знать где ошибка обнаружена -- все равно она обычно раньше.
как и сказали ранее:
zub писал(а):просто воспроизведи ошибку и загляни в видокна отладкистек вызовов

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

Добавлено спустя 2 минуты 13 секунд:
Re: sigfpe+invalid floating point operation на контролах лазарус
vitaly_l, где написано максимум 10 поставь максимум 50. Щелкни на строке со стрелочкий и покажи код, который высветится в редакторе.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3811
Зарегистрирован: 19.02.2013 16:54:51

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение zub » 08.07.2017 13:57:11

Ты каждое движение мышкой будешь на форуме спрашивать))
сделай "максимум 50"
zub
долгожитель
 
Сообщения: 2067
Зарегистрирован: 14.11.2005 23:51:26

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение Лекс Айрин » 08.07.2017 13:58:30

И, скорее всего, ты не перекомпилировал среду.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3811
Зарегистрирован: 19.02.2013 16:54:51

Re: sigfpe+invalid floating point operation на контролах лаз

Сообщение vitaly_l » 08.07.2017 14:08:06

+ 50 - это ещё круче, но...
Всё равно не понимаю, какая из них является ошибкой? Сбоем? :cry: :cry: :cry:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось vitaly_l 08.07.2017 14:11:07, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 2855
Зарегистрирован: 31.01.2012 16:41:41

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot], pupsik и гости: 4

Рейтинг@Mail.ru