Я получил сообщение о сбое от MadExcept от пользователя. Исключением является недопустимая операция с плавающей запятой.
Странно то, что стек вызовов умирает в @ FSafeDivide.
Я сделал гугл и обнаружил, что это проверка для определенных чипов Pentium, которые делали неправильно. Если тест не пройден, все деления будут выполняться программно, а не аппаратно. В настройках компилятора включена опция Pentium-Safe FDIV.
Может ли это быть причиной ошибки? Я также читал где-то еще, что EInvalidOp, который был классом исключения, может быть переполнением стека или чем-то еще.
Вот фрагмент безумия, кроме сообщения, если вы хотите его прочитать.
класс исключений: EInvalidOp
сообщение об исключении: недопустимая операция с плавающей запятой.
thread $1014 (TMyBossThread):
00403509 M5b3.exe System @FSafeDivide
008300c9 M5b3.exe MMyWorkerThread 317 TMyBossThread.Search
0073e87a M5b3.exe MMyManagerThread 186 TMyWorkerThread.Execute
008e8c17 M5b3.exe madExcept HookedTThreadExecute
0042c150 M5b3.exe Classes ThreadProc
00405354 M5b3.exe System ThreadWrapper
008e8af9 M5b3.exe madExcept CallThreadProcSafe
008e8b63 M5b3.exe madExcept ThreadExceptFrame
created by main thread ($864) at:
0073e828 M5b3.exe MMyManagerThread 171 TMyManagerThread.Create