当出现指定的错误时,就会发生 fault 事件。这些错误为体系结构相关式错误。以下这组 dbx 已知的错误在 proc(4) 手册页中进行了定义。
错误 |
说明 |
---|---|
FLTILL |
非法指令 |
FLTPRIV |
特权指令 |
FLTBPT* |
断点陷阱 |
FLTTRACE* |
跟踪陷阱(单步) |
FLTACCESS |
内存访问(如对齐) |
FLTBOUNDS |
内存边界(无效地址) |
FLTIOVF |
整数溢出 |
FLTIZDIV |
整数除以零 |
FLTPE |
浮点异常 |
FLTSTACK |
无法恢复的栈错误 |
FLTPAGE |
可恢复的页错误 |
FLTWATCH* |
监视点陷阱 |
FLTCPCOVF |
CPU 性能计数器溢出 |
dbx 使用 BPT、TRACE 和 BOUNDS 来实现断点和单步执行。处理它们时可能会干扰 dbx 的运行情况。
FLTBPT 和 FLTTRACE 会被忽略,因为它们会干扰诸如断点和单步执行等 dbx 基本功能(请参见事件安全)。
上述错误摘自 /sys/fault.h。fault 可以是上面所列错误中的任何一种(大小写、有无 FLT 前缀均可),也可以是实际的数字代码。
在 Linux 平台上不能使用 fault 事件。