Espresso 0.0.2a
This commit is contained in:
54
kernel/ksh_debug.c
Normal file
54
kernel/ksh_debug.c
Normal file
@ -0,0 +1,54 @@
|
||||
#include <stdio.h>
|
||||
#include <types.h>
|
||||
|
||||
#include <kernel/ksh_debug.h>
|
||||
|
||||
|
||||
|
||||
void print_all_regs(void)
|
||||
{
|
||||
uint32_t eax, ebx, ecx, edx, esi, edi, esp, ebp, eip;
|
||||
uint16_t cs, ds, es, ss;
|
||||
|
||||
asm volatile ("mov %%eax, %0" : "=r"(eax));
|
||||
asm volatile ("mov %%ebx, %0" : "=r"(ebx));
|
||||
asm volatile ("mov %%ecx, %0" : "=r"(ecx));
|
||||
asm volatile ("mov %%edx, %0" : "=r"(edx));
|
||||
asm volatile ("mov %%esi, %0" : "=r"(esi));
|
||||
asm volatile ("mov %%edi, %0" : "=r"(edi));
|
||||
asm volatile ("mov %%esp, %0" : "=r"(esp));
|
||||
asm volatile ("mov %%ebp, %0" : "=r"(ebp));
|
||||
|
||||
asm volatile (
|
||||
"call 1f\n"
|
||||
"1: pop %0\n"
|
||||
: "=r"(eip)
|
||||
);
|
||||
|
||||
asm volatile ("mov %%cs, %0" : "=r"(cs));
|
||||
asm volatile ("mov %%ds, %0" : "=r"(ds));
|
||||
asm volatile ("mov %%es, %0" : "=r"(es));
|
||||
asm volatile ("mov %%ss, %0" : "=r"(ss));
|
||||
|
||||
printf("EAX -> 0x%x EBX -> 0x%x ECX -> 0x%x EDX -> 0x%x\n", eax, ebx, ecx, edx);
|
||||
printf("ESI -> 0x%x EDI -> 0x%x ESP -> 0x%x EBP -> 0x%x\n", esi, edi, esp, ebp);
|
||||
printf("EIP (maybe) -> 0x%x\n", eip);
|
||||
printf("CS -> 0x%04x DS -> 0x%04x ES -> 0x%04x SS -> 0x%04x\n", cs, ds, es, ss);
|
||||
}
|
||||
|
||||
void print_gprs(void)
|
||||
{
|
||||
uint32_t eax, ebx, ecx, edx, esi, edi, esp, ebp;
|
||||
|
||||
asm volatile ("mov %%eax, %0" : "=r"(eax));
|
||||
asm volatile ("mov %%ebx, %0" : "=r"(ebx));
|
||||
asm volatile ("mov %%ecx, %0" : "=r"(ecx));
|
||||
asm volatile ("mov %%edx, %0" : "=r"(edx));
|
||||
asm volatile ("mov %%esi, %0" : "=r"(esi));
|
||||
asm volatile ("mov %%edi, %0" : "=r"(edi));
|
||||
asm volatile ("mov %%esp, %0" : "=r"(esp));
|
||||
asm volatile ("mov %%ebp, %0" : "=r"(ebp));
|
||||
|
||||
printf("EAX -> 0x%x EBX -> 0x%x ECX -> 0x%x EDX -> 0x%x\n", eax, ebx, ecx, edx);
|
||||
printf("ESI -> 0x%x EDI -> 0x%x ESP -> 0x%x EBP -> 0x%x\n", esi, edi, esp, ebp);
|
||||
}
|
||||
Reference in New Issue
Block a user