Как перейти в основной стек - PullRequest
0 голосов
/ 16 декабря 2008

Я использую альтернативный стек для обработки сигналов для программы на C поверх Linux. Когда происходит переполнение стека, мой сигнал доставляется в мой альтернативный стек, а не в основной стек.

Так что в этой ситуации я хочу сбросить основной стек .... как я могу?

1 Ответ

1 голос
/ 23 декабря 2008

запоминает адрес верхнего стека в main (& некоторой локальной переменной в этом кадре стека) и выводит из него адрес исключения. Имейте в виду, что существуют некоторые проблемы с переносимостью (например, стек увеличивается на hp-pa-risc). Если сбой произошел не из-за доступа к защищенной области под переполняющим стеком, вам нужно посмотреть информацию об исключении для sp, которая действовала до сигнала. Информация об исключении передается в качестве аргумента обработчику сигнала. Опять же, это, скорее всего, очень сильно зависит от процессора и операционной системы (зависит от всех устройств).

С уважением

...