OSDN Git Service

SimpleHTMLEditorを追加。
[chnosproject/CHNOSProject.git] / CHNOSProject / chnos / tolset_chn_000 / chnos_010 / chnos / debug.c
diff --git a/CHNOSProject/chnos/tolset_chn_000/chnos_010/chnos/debug.c b/CHNOSProject/chnos/tolset_chn_000/chnos_010/chnos/debug.c
deleted file mode 100644 (file)
index df144fa..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-#include "core.h"\r
-\r
-//DR7:RWn Breakpoint Condition\r
-//     CR4.DE==1\r
-//             00:Execute Instruction\r
-//             01:Write Data\r
-//             10:I/O R/W\r
-//             11:Data R/W\r
-//     CR4.DE==0\r
-//             00:Execute Operation\r
-//             01:Write Data\r
-//             10:(Undefined)\r
-//             11:Data R/W\r
-\r
-//DR7:LENn Address Location Size\r
-//     00:Byte(or Instruction)\r
-//     01:Word\r
-//     10:(Undefined)\r
-//     11:Double Word\r
-\r
-#ifdef CHNOSPROJECT_DEBUG\r
-\r
-extern uchar *cpu_exception_infos[16]; //error.c\r
-extern uint Error_Output_Display_GraphicMode_UsedLines; //error.c\r
-\r
-uint debug_exception_last_addr;\r
-\r
-void debug(const uchar format[], ...)\r
-{\r
-       uchar s[256];\r
-\r
-       vsnprintf(s, sizeof(s), format, (uint *)(&format + 1));\r
-       SerialPort_Send(s);\r
-       return;\r
-}\r
-\r
-void Debug_PhysicalMemoryDump(void *addr, uint bytes)\r
-{\r
-       uchar *p;\r
-       uint i, j;\r
-       uint eflags;\r
-\r
-       bytes += (uint)addr - ((uint)addr & 0xfffffff0);\r
-       (uint)addr &= 0xfffffff0; \r
-\r
-       j = (bytes + 0x0f) >> 4;\r
-\r
-       eflags = IO_Load_EFlags();\r
-       IO_CLI();\r
-\r
-       debug("\n***PhysicalMemoryDump Start***\n");\r
-       debug("Dump from[0x%08X] for 0x%X bytes.\n", addr, j << 4);\r
-       debug("Address+|00|01|02|03|04|05|06|07|08|09|0A|0B|0C|0D|0E|0F|\n");\r
-       for(i = 0; i < j; i++){\r
-               p = (uchar *)((uint)addr + (i << 4));\r
-               debug("%08X:%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X|\n", p, p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13], p[14], p[15]);\r
-       }\r
-       debug("***PhysicalMemoryDump End***\n");\r
-\r
-       IO_Store_EFlags(eflags);\r
-\r
-       return;\r
-}\r
-\r
-void Debug_Set_Breakpoint(uint reg, void *addr, uint rw, uint len)\r
-{\r
-       CPU_DebugRegister7 dr7;\r
-\r
-       dr7.dr7 = Load_DR7();\r
-\r
-       dr7.bit.LE = True;\r
-       dr7.bit.GE = True;\r
-\r
-       switch(reg){\r
-               case 0:\r
-                       Store_DR0((uint)addr);\r
-                       dr7.bit.L0 = True;\r
-                       dr7.bit.G0 = True;\r
-                       dr7.bit.RW0 = rw;\r
-                       dr7.bit.LEN0 = len;\r
-                       debug("Debug_Set_Breakpoint:Breakpoint%d Enabled(target:[0x%08X] rw:%d len:%d).\n", reg, addr, dr7.bit.RW0, dr7.bit.LEN0);\r
-                       break;\r
-       }\r
-\r
-       Store_DR7(dr7.dr7);\r
-\r
-       return;\r
-}\r
-\r
-void Debug_ExceptionHandler(uint *esp)\r
-{\r
-       uint i, j;\r
-       IO_SegmentDescriptor *gdt;\r
-\r
-       gdt = (IO_SegmentDescriptor *)ADR_GDT;\r
-\r
-       if(esp[0x0a] == debug_exception_last_addr){\r
-               debug("Debug_ExceptionHandler:Ignore debug exception(same eip.)\n");\r
-               return;\r
-       }\r
-\r
-       Error_Put_String("Exception 0x01 Debug. CHNOSProject is running in debug mode.");\r
-\r
-       Error_Put_String("#PUSHAD by _asm_CPU_ExceptionHandler");\r
-       for(i = 0; i < 4; i++){\r
-               Error_Put_String("%s:0x%08X %s:0x%08X", cpu_exception_infos[i << 1], esp[i << 1], cpu_exception_infos[(i << 1) + 1], esp[(i << 1) + 1]);\r
-       }\r
-\r
-       Error_Put_String("#PUSH by _asm_CPU_ExceptionHandler");\r
-       for(; i < 5; i++){\r
-               Error_Put_String("%s:0x%08X %s:0x%08X", cpu_exception_infos[i << 1], esp[i << 1], cpu_exception_infos[(i << 1) + 1], esp[(i << 1) + 1]);\r
-       }\r
-\r
-       Error_Put_String("#PUSH by CPU");\r
-       Error_Put_String("%s:0x%08X", cpu_exception_infos[(i << 1) + 1], esp[i << 1]);\r
-       i++;\r
-       for(; i < 8; i++){\r
-               Error_Put_String("%s:0x%08X %s:0x%08X", cpu_exception_infos[i << 1], esp[(i << 1) - 1], cpu_exception_infos[(i << 1) + 1], esp[i << 1]);\r
-       }\r
-\r
-       Error_Put_String("#Control Registers");\r
-       Error_Put_String("CR0 = 0x%08X", Load_CR0());\r
-       Error_Put_String("CR2 = 0x%08X", Load_CR2());\r
-       Error_Put_String("CR3 = 0x%08X", Load_CR3());\r
-       Error_Put_String("#Debug Registers");\r
-       Error_Put_String("DR0 = 0x%08X", Load_DR0());\r
-       Error_Put_String("DR1 = 0x%08X", Load_DR1());\r
-       Error_Put_String("DR2 = 0x%08X", Load_DR2());\r
-       Error_Put_String("DR3 = 0x%08X", Load_DR3());\r
-       Error_Put_String("DR6 = 0x%08X", Load_DR6());\r
-       Error_Put_String("DR7 = 0x%08X", Load_DR7());\r
-\r
-\r
-       Error_Put_String("Opcode[0x%X:0x%X]:0x%X", SegmentDescriptor_Get_Base(&gdt[esp[0x0b] >> 3]), esp[0x0a], ((uchar *)(SegmentDescriptor_Get_Base(&gdt[esp[0x0b] >> 3])))[esp[0x0a]]);\r
-       Error_Put_String("Press any key to continue.");\r
-\r
-       debug_exception_last_addr = esp[0x0a];\r
-\r
-//Microsot VirtualPC2007 Only\r
-/*\r
-       if(((uchar *)(SegmentDescriptor_Get_Base(&gdt[esp[0x0b] >> 3])))[esp[0x0a]] == 0x89){\r
-               esp[0x0a] += 3;\r
-       }\r
-*/\r
-\r
-Debug_PhysicalMemoryDump((void *)(Load_DR0() - 16), 32);\r
-\r
-//Wait press any key.\r
-       for(;;){\r
-               if((IO_In8(PORT_KEYSTA) & 0x01) != 0){\r
-                       break;\r
-               }\r
-       }\r
-\r
-//Clear Display.\r
-       j = Error_Output_Display_GraphicMode_UsedLines;\r
-       Error_Output_Display_GraphicMode_UsedLines = 0;\r
-       for(i = 0; i < j; i++){\r
-               Error_Put_String("");\r
-       }\r
-       Error_Output_Display_GraphicMode_UsedLines = 0;\r
-\r
-       return;\r
-}\r
-\r
-#endif\r