假设我们在第 76 页的底部有这个事件,其中type=SYSCALL
success=yes
和exit=11
我不明白这个系统对内核的调用是否成功。成功字段设置为yes
因此系统调用似乎成功,但退出代码也设置为11
根据此,非零 (1-255( 退出状态表示失败。
那么这算不算失败呢?当成功字段设置为是时,它怎么可能是失败的。
每当出现不成功的 SYSCALL 时,退出值将为负数,可以将其与错误表进行比较以查找错误类型。例如,如果有一个退出代码为 -1 的 SYSCALL 失败,则意味着它是 EPREM(权限错误(,如 https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/errno-base.h 中所述。
虽然我们有一个成功的 SYSCALL,但退出代码对于不同的系统调用可能意味着不同的事情。例如,对于打开的 SYSCALL,退出值将表示打开的文件的 FD。对于读取 SYSCALL,退出值将表示读取的字节数。