Поддержка multiple personalities в strace, или как обеспечить корректную трассировку 32-битных программ на 64-битных архитектурах
Материал из 0x1.tv
Версия от 00:47, 3 ноября 2015; StasFomin (обсуждение | вклад) (Новая страница: «== Аннотация == ;Докладчик: {{Speaker|Эльвира Хабирова}} <blockquote> Исторически поддержка <tt>multipers</tt…»)
Короткая ссылка: 20151017J
Аннотация
- Докладчик
- Эльвира Хабирова
Исторически поддержка multipers в strace была ненадежной.
Некоторые системные вызовы совсем не поддерживали различия между моделями данных, например, между LP64 и ILP32 — в таких случаях аргументы системных вызовов типов long, pointer, а также всех составных типов, содержащих long и pointer, печатались неправильно.
Поскольку это в большинстве случаев единственное, чем различается трассировка системных вызовов для разных personality, верным решением было бы использовать один и тот же исходный код для разных personality.
Видео