X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Fx86%2Ferrors.c;h=8dc90b0186499f8bb041ec87541811033f1cc837;hb=86f855a3e417d93976af42dde36f457e89524902;hp=b69f5f857a6947fdec1ed4094be5010cd681b477;hpb=eff588327d277cd0db1462c82f0a916b891f8cfd;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/x86/errors.c b/KernelLand/Kernel/arch/x86/errors.c index b69f5f85..8dc90b01 100644 --- a/KernelLand/Kernel/arch/x86/errors.c +++ b/KernelLand/Kernel/arch/x86/errors.c @@ -116,6 +116,8 @@ void ErrorHandler(tRegs *Regs) csaERROR_NAMES[Regs->int_num], Regs->err_code); Log_Warning("Arch", "at CS:EIP %04x:%08x", Regs->cs, Regs->eip); + Error_Backtrace(Regs->eip, Regs->ebp); + MM_DumpTables(0, KERNEL_BASE); switch( Regs->int_num ) { @@ -226,14 +228,14 @@ void Error_Backtrace(Uint eip, Uint ebp) LogF("Backtrace: 0x%x", eip); // else // LogF("Backtrace: %s+0x%x", str, delta); - if(!MM_GetPhysAddr(ebp)) + if(!MM_GetPhysAddr((void*)ebp)) { - LogF("\nBacktrace: Invalid EBP, stopping\n"); + LogF("\nBacktrace: Invalid EBP %p, stopping\n", ebp); return; } - while( MM_GetPhysAddr(ebp) && i < MAX_BACKTRACE ) + while( MM_GetPhysAddr((void*)ebp) && i < MAX_BACKTRACE ) { if( ebp >= MM_KERNEL_STACKS_END ) break; //str = Debug_GetSymbol(*(Uint*)(ebp+4), &delta);