当错误与内存访问无关时,是否有错误列表显示为"segfaults"? [英] Is there a list of errors will show up as `segfaults` when they are not really related to memory access?
问题描述
在此问题中,我了解到试图如果不在环0中运行特权指令,可能会导致在用户进程中出现segfault
的问题,我有两个后续问题.
In this question, I learned that attempting to run privileged instructions when not in ring 0 can cause what looks like a segfault
in a user process, and I have two follow-up questions.
- 所有特权指令是否都是这样?
- 还有哪些其他类型的错误可能导致伪造的段错误,但与尝试读取内存无关?
推荐答案
通读指令集参考,查看在哪里列出了#GP
的非内存问题.不完整的列表:CLI
,CLTS
,HLT
,IN
,INT
(带有无效向量),INVD
,INVLPG
,IRET
(在某些情况下),LDMXCSR
(设置保留位),LGDT
,LIDT
,LLDT
,LMSW
,LTR
,MONITOR
(带有ECX != 0
),MOV
(至CRx
或DRx
),ECX
),OUT
,RDMSR
,RDPMC
,SWAPGS
,SYSEXIT
,SYSRET
,WBINVD
,WRMSR
,XGETBV
(无效的ECX
) ,XRSTOR
,XSETBV
Read through the instruction set reference and see where #GP
is listed for a non-memory issue. Incomplete list: CLI
, CLTS
, HLT
, IN
, INT
(with an invalid vector), INVD
, INVLPG
, IRET
(under circumstances), LDMXCSR
(setting reserved bits), LGDT
, LIDT
, LLDT
, LMSW
, LTR
, MONITOR
(with ECX != 0
), MOV
(to CRx
or DRx
), MWAIT
(with invalid ECX
), OUT
, RDMSR
, RDPMC
, SWAPGS
, SYSEXIT
, SYSRET
, WBINVD
, WRMSR
, XGETBV
(invalid ECX
), XRSTOR
, XSETBV
这篇关于当错误与内存访问无关时,是否有错误列表显示为"segfaults"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!