Vxworks + PPC 603에서 "잘못된 프로그램 카운터 주소"예외가 발생합니다.프로그램 카운터에 잘못된 주소가 발생할 수 있습니까?
응용 프로그램이 여러 'C'라이브러리에 연결됩니다. 이 문제를 일으킬 수있는 장소를 배치 할 수 없습니까?
잘못된 컴파일 옵션으로 인해이 문제가 발생할 수 있습니까?
방향 또는 포인터가 도움이 될 것입니다.
감사
UPDATE :
내가 멤버 함수 포인터 구조를 갖는입니다. 구조체 자체는 정적이며 주소가 구조체를 통해 전달되고 다른 함수가 호출됩니다.
테스트 라운드 중 하나에서 함수 포인터에서 함수 주소 값이 1 감소한 것을 발견했습니다. 함수 주소가 0x009a3730이면 PC에 0x00913729가있는 것입니다.
또한 컴파일러 옵션을 변경하면 충돌이 발생하거나 충돌이 발생하는 횟수가 변경됩니다.
함수 포인터를 통해 함수 호출을 수행하고 있습니까? –
아마 스택이 엉망이되어서 함수에서 돌아 왔을 때 잘못된 주소를 PC에 넣었을 것입니다. –
@Oli Charlesworth, 네, 함수 포인터를 통해서만 대부분의 함수 호출을 수행하고 있습니다. – Jay