2010-05-31 4 views
3

FPE 오류를 잡는 신호 처리기를 작성했습니다. 이 경우에도 계속해서 실행해야합니다. ucontext_t를 매개 변수로 받으면 0에서 다른 값으로 나쁜 피연산자를 변경할 수 있지만 FPU 컨텍스트는 여전히 나쁘고 무한 루프가 발생합니까?신호 처리기에서 FPU 컨텍스트를 변경하는 방법 (C++/Linux)

누군가 Linux에서 이미 ucontext_t 구조를 관리하고 있습니까? 0x3F입니다는 FPU의 상태 레지스터의 6 비트 0을 넣어 니 게이트

... 
const long int cFPUStatusFlag = 0x3F; 
aContext->uc_mcontext.fpregs->sw &= ~cFPUStatusFlag; 
... 

(x87)

는 마침내 같이 ucontext_t의 상태 플래그를 클리어하여 이러한 상황을 처리하는 방법을 발견 . 이렇게하면 계산 후 FPE 예외를 확인해야합니다.

답변

0

64 비트 Linux 커널에서 동일한 결과를 얻을 수있는 방법을 찾지 못했습니다.

관련 문제