0
나는 단지이 때 나타나는 것으로, 내 커널 코드에서 제기되고 예상치 못한 "잘못된 연산 코드"예외가 발생했습니다 : (공정하게의 Qemu 잘못된 연산 코드
는 QEMU에서 코드를 실행, 나는 천국 ' t 실제로 다른 에뮬레이터/하드웨어 시도)
코드가 -O2 이상으로 컴파일됩니다. -O0 또는 -O1로 컴파일되면 예외가 발생하지 않습니다.
물론 clang은 qemu가 지원하지 않는 일부 opcode를 출력하고 있지만이 문제를 해결하는 방법은 확실하지 않습니다. 가능하다면 더 낮은 최적화 수준으로 컴파일하는 것을 피하고 싶습니다.
관련 코드
상당히 무해한 것 - 그것은 단지 비트 맵의 배열에 값을 채우고 :for (uint32_t i = 0; i < kNumBitmapEntries; i++) {
if (i > map_index) {
bitmaps[i] = ~0;
} else {
bitmaps[i] = 0;
}
}
옵 코드는 QEMU에 생성되는 추가/사용 할 수있는 방법이 있나요?