我正在嘗試引導本地內核。我已經成功地轉移處理器進入長模式,但隨後QEMU報告下列指令三重故障:movq導致三重故障
movq %rax, ___stack_chk_guard(%rip)
爲什麼會movq
原因三的錯嗎? (請張貼任何和所有的理論,我將與意見作出迴應,如果他們不適用,或者如果我需要更多的信息。)
我正在嘗試引導本地內核。我已經成功地轉移處理器進入長模式,但隨後QEMU報告下列指令三重故障:movq導致三重故障
movq %rax, ___stack_chk_guard(%rip)
爲什麼會movq
原因三的錯嗎? (請張貼任何和所有的理論,我將與意見作出迴應,如果他們不適用,或者如果我需要更多的信息。)
我能想到的下列可能性:
地址不是正確對齊(MOVQ大概需要64位對齊,這取決於你的處理器設置)
地址是無法訪問的,但我想你知道數據是存在(特別是因爲你使用%RIP)
如果發生「常規」異常(例如分段故障)並且您沒有異常處理程序中斷,則會發生雙重故障和三重故障異常。這條指令發生的實際故障不是三重故障,而是一些其他故障(例如分段故障)。 –