В обработчике сигналов Linux расширенное состояние x86 всегда будет в формате XSAVE или оно также может быть в формате XLinux

Ответить
Гость
 В обработчике сигналов Linux расширенное состояние x86 всегда будет в формате XSAVE или оно также может быть в формате X

Сообщение Гость »

На x86-64, когда происходит сбой программы пользовательского режима Linux, но для этого сбоя имеется обработчик сигнала, всегда ли расширенное состояние AVX сохраняется в стек в формате XSAVE или это может быть в XSAVEC («сжатый») формат?
Мне интересно, чтобы я мог получить доступ к сохраненному контексту AVX в своем обработчике сигналов.
В частности, член ucontext_t fpregs указывает на структуру, содержащую состояние FXSAVE с плавающей запятой + SSE. _libc_fpstate содержит _fpx_sw_bytes, наложенный на &__glibc_reserved1[12]. Он содержит магическое значение FP_XSTATE_MAGIC1, обозначающее наличие контекста XSTATE (AVX и т. д.).
Однако, чтобы добраться до части контекста, содержащей, например, старшие половины регистров ymm, похоже, вам нужно использовать подфункцию CPUID 0x0D, чтобы получить смещение для этой конкретной функции XSTATE. Если ядро ​​Linux записывает кадр сигнала пользовательского режима, используя XSAVEC вместо XSAVE, это будет означать, что алгоритм определения смещения другой.
Do Мне нужна поддержка форматов XSAVE и XSAVEC для поиска контекста AVX в замороженном контексте?

Подробнее здесь: https://stackoverflow.com/questions/782 ... -format-or
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»