| Предыдущий | Следующий |
| RPC_S_ADDRESS_ERROR | RPC_S_FP_UNDERFLOW |
RPC_S_FP_DIV_ZERO
Внутри реализации сервера произошла ошибка вычислений с плавающей точкой
RPC_S_FP_DIV_ZERO означает, что процедура диспетчера сервера или вызванный ею компонент при обработке запроса разделила значение с плавающей точкой на ноль. Это ошибка выполнения сервера, переданная через RPC, а не ошибка кодирования NDR и не проблема подключения.
Воспроизведите сбой с теми же сериализованными входными данными и проверьте среду вычислений с плавающей точкой на сервере, поскольку маски исключений и параметры компилятора могут определять, приведёт операция к исключению или бесконечности. Проверяйте знаменатели и отклоняйте NaN/бесконечность там, где контракт интерфейса требует конечных значений. Сохраните исходный стек сервера и набор параметров; один повтор на клиенте почти не даёт диагностической информации.
Что проверить
- Зафиксируйте аварийную инструкцию сервера и состояние управления вычислениями с плавающей точкой.
- Проверяйте ноль, NaN и бесконечность до числовой обработки.
- Задокументируйте, допускает ли контракт RPC исключительные значения IEEE.
Ссылки
- Microsoft: передача серверных исключений RPC
- Microsoft: базовые типы float и double в RPC
- Microsoft: возвращаемые значения RPC
Нужно найти другой код? Найти другой код состояния или ошибки.