我有一个在线C程序:
int main(){asm volatile ("INT $0x06"::);}
编译完成后,我按
执行sudo ./a.out
但是,它不会抛出无效指令错误(正如预期的那样,因为0x06
是无效的指令中断)。相反,在dmesg
中,它会切换到一般保护陷阱......
[ 2898.849785] traps: a.out[2534] general protection ip:4004f1 sp:7fffa949c8f0 error:32 in a.out[400000+1000]
我的问题是:在内核空间中抛出中断的正确方法是什么?
我的平台是Linux 3.13和x86_64上的Ubuntu 14.04。