在Linux操作系统中打印错误行号,文件和寄存器?

时间:2015-03-17 18:18:38

标签: linux gcc linux-kernel x86 operating-system

在我们学校最可怕的课程中,我们正在构建类似Linux的操作系统。我们在x86处理器IA32架构上构建它,并使用PIC-8259。无论如何,我们已经完成了GDT,PIC,IDT和Paging的设置,我们能够接收并打印linux中的前19个异常,如下所示;

void divide_by_zero(void)
{
     printf("EXCEPTION 0:-you divided by zero");
     while(1){}   // will halt later
}

上面的异常函数只打印消息,我想扩展它以便打印出发生错误的文件和行号,就像编译时gcc所做的那样。我还想打印出通用寄存器和标志,如果可能的话,例如edx,ecx,DS,SS等。我卡住了,我不知道如何获取/追溯行号和文件一个程序已达到上述功能。我们有太多的文件被makefile编译,并且一些错误如分页错误没有显示出来。如果他们这样做,他们只是警告

0 个答案:

没有答案