Как-то можно поймать ошибки выравнивания данных даже на i386? Возможно, установив специальный регистратор i386 или что-то в этом роде.
В Solaris-Sparc я получаю SIGBUS в этом случае, но на i386 все в порядке.
Окружающая среда:
- 32-разрядное приложение
- Ubuntu Karmic
- gcc/g++ v4.4.1
ИЗМЕНИТЬ: Вот почему я спрашиваю об этом:
- наше приложение вылетает на Sol-Sparc с SIGBUS. Для отладки я попытался бы получить аналогичное поведение на нашей платформе i386.
- наша Sol-sparc-машина работает очень медленно, поэтому компиляция и отладка занимает много времени. И наша машина i386 невероятно проста (8 ядер, 32 Гб памяти).
- Даже на платформах i386 существует стоимость производительности при ошибках выравнивания данных. И поэтому я хотел бы исправить ошибки выравнивания данных, где это возможно.