1. 1: int eax;

  1. 2: _asm_("nop":"=a"(eax));

  1. 3: printk("Get Eax Value:\n");

  1. 4: printk("0x%08X\n", eax);

  1. 5: printk("");

  1. 1: int eax;

  1. 2: 

  1. 3: asm("mov %%cr0, %%eax;":"=a"(eax));

  1. 4: printk("%08s:0x%08X\n", "cr0", eax);

  1. 5: 

  1. 6: asm("mov %%cr1, %%eax;":"=a"(eax));

  1. 7: printk("%08s:0x%08X\n", "cr1", eax);

  1. 8: 

  1. 9: asm("mov %%cr2, %%eax;":"=a"(eax));

  1. 10: printk("%08s:0x%08X\n", "cr2", eax);

  1. 11: 

  1. 12: asm("mov %%cr3, %%eax;":"=a"(eax));

  1. 13: printk("%08s:0x%08X\n", "cr3", eax);

  1. 14: 

  1. 15: printk("\n");

下面是改进后的版本

  1. 1: #include<linux/init.h>

  1. 2: #include<linux/module.h>

  1. 3: #include<linux/list.h>

  1. 4: #include<linux/sched.h>

  1. 5: #include<linux/proc_fs.h>

  1. 6: #include<linux/mm_types.h>

  1. 7: #include<linux/fs.h>

  1. 8: #include<linux/path.h>

  1. 9: #include<linux/dcache.h>

  1. 10: #include<linux/mm.h>

  1. 11: #include<linux/mmzone.h>

  1. 12: #include<linux/vmalloc.h>

  1. 13: 

  1. 14: MODULE_LICENSE("GPL");

  1. 15: 

  1. 16: void printRawData(unsigned long size, const u_char* data)

  1. 17: {

  1. 18: if (size == 0)

  1. 19: {

  1. 20: return;

  1. 21: }

  1. 22: 

  1. 23: unsigned long i = 0;

  1. 24: for (i=0;i<16;i++)

  1. 25: {

  1. 26: printk("%4X", i);

  1. 27: }

  1. 28: printk("\n");

  1. 29: for (i=0;i<16;i++)

  1. 30: {

  1. 31: printk("%4s", "__");

  1. 32: }

  1. 33: 

  1. 34: char lineSummary[17] = {0,};

  1. 35: unsigned long pos = 0;

  1. 36: for (i=0;i<size;i++)

  1. 37: {

  1. 38: if ((pos = i % 16) == 0)

  1. 39: {

  1. 40: if (i != 0)

  1. 41: {

  1. 42: printk(" ---- %s\n", lineSummary);

  1. 43: memset(lineSummary, 0, 17);

  1. 44: }

  1. 45: else

  1. 46: {

  1. 47: printk("\n");

  1. 48: }

  1. 49: }

  1. 50: 

  1. 51: printk(" %02X", *(data + i));

  1. 52: 

  1. 53: if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)

  1. 54: {

  1. 55: lineSummary[pos] = *(data + i);

  1. 56: }

  1. 57: else

  1. 58: {

  1. 59: lineSummary[pos] = ' ';

  1. 60: }

  1. 61: }

  1. 62: 

  1. 63: if (size % 16 != 0)

  1. 64: {

  1. 65: for (i=0;i<16 - (size%16);i++)

  1. 66: {

  1. 67: printk(" ");

  1. 68: }

  1. 69: }

  1. 70: 

  1. 71: printk(" ---- %s\n", lineSummary);

  1. 72: printk("\n");

  1. 73: }

  1. 74: 

  1. 75: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));

  1. 76: 

  1. 77: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}

  1. 78: 

  1. 79: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}

  1. 80: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val)); printk("%08s:0x%08X\n", "tss", val);}

  1. 81: 

  1. 82: #define dumpGDT() {char gdt[6]; \

  1. 83: asm("sgdt %0" : "=m"(gdt)); \

  1. 84: printRawData(6, gdt); \

  1. 85: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt));}

  1. 86: 

  1. 87: #define dumpIDT() {char idt[6]; \

  1. 88: asm("sidt %0" : "=m"(idt)); \

  1. 89: printRawData(6, idt); \

  1. 90: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt));}

  1. 91: 

  1. 92: static int pslist_init()

  1. 93: {

  1. 94: // analyzeUMANode();

  1. 95: // analyzeProcesses();

  1. 96:

  1. 97: // asm("mov %%cr0, %%eax;":"=a"(eax));

  1. 98: // printk("%08s:0x%08X\n", "cr0", eax);

  1. 99: 

  1. 100: printk("###################################################################\n");

  1. 101: dumpNormalReg(cr0);

  1. 102: dumpNormalReg(cr2);

  1. 103: dumpNormalReg(cr3);

  1. 104: 

  1. 105: dumpNormalReg(eax);

  1. 106: dumpNormalReg(ebx);

  1. 107: dumpNormalReg(ecx);

  1. 108: dumpNormalReg(edx);

  1. 109: 

  1. 110: dumpNormalReg(esp);

  1. 111: dumpNormalReg(ebp);

  1. 112:

  1. 113: dumpNormalReg(esi);

  1. 114: dumpNormalReg(edi);

  1. 115: 

  1. 116: dumpTSS();

  1. 117: dumpLDT();

  1. 118: 

  1. 119: dumpGDT();

  1. 120: dumpIDT();

  1. 121: 

  1. 122: 

  1. 123: return 0;

  1. 124: }

  1. 125: 

  1. 126: static void pslist_exit()

  1. 127: {

  1. 128: printk("###################################################################\n");

  1. 129: }

  1. 130: 

  1. 131: module_init(pslist_init);

  1. 132: module_exit(pslist_exit);

下面是输出的结果:

  1. 1: [ 2452.866241] ###################################################################

  1. 2: [ 2452.866244] cr0:0x8005003B

  1. 3: [ 2452.866245] cr2:0xB7849000

  1. 4: [ 2452.866246] cr3:0x288D0000

  1. 5: [ 2452.866247] eax:0x00000026

  1. 6: [ 2452.866247] ebx:0x00000000

  1. 7: [ 2452.866248] ecx:0xFFFFFEEC

  1. 8: [ 2452.866249] edx:0x00000000

  1. 9: [ 2452.866250] esp:0xE8929F3C

  1. 10: [ 2452.866250] ebp:0xE8929F58

  1. 11: [ 2452.866251] esi:0x000003F2

  1. 12: [ 2452.866252] edi:0x00540918

  1. 13: [ 2452.866253] tss:0x00000080

  1. 14: [ 2452.866253] ldt:0x00000000

  1. 15: [ 2452.866254] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 16: [ 2452.866257] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 17: [ 2452.866261] FF 00 00 00 80 F5 ----

  1. 18: [ 2452.866264]

  1. 19: [ 2452.866265] gdt:0xF5800000(0x00FF)

  1. 20: [ 2452.866266] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 21: [ 2452.866271] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 22: [ 2452.866274] FF 07 00 B0 75 C1 ---- u

  1. 23: [ 2452.866277]

  1. 24: [ 2452.866278] idt:0xC175B000(0x07FF)

  1. 25: [ 2452.866758] ###################################################################

更改其中的宏

  1. 1: #define dumpGDT() {char gdt[6]; \

  1. 2: asm("sgdt %0" : "=m"(gdt)); \

  1. 3: printRawData(6, gdt); \

  1. 4: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \

  1. 5: printRawData(0x60, (u_char*)(*(u32*)(gdt + 2)));}

  1. 6: 

  1. 7: #define dumpIDT() {char idt[6]; \

  1. 8: asm("sidt %0" : "=m"(idt)); \

  1. 9: printRawData(6, idt); \

  1. 10: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \

  1. 11: printRawData(0x60, (u_char*)(*(u32*)(idt + 2)));}

结果如下:

  1. 1: [ 2362.090908] ###################################################################

  1. 2: [ 2362.090911] cr0:0x8005003B

  1. 3: [ 2362.090912] cr2:0xB772E000

  1. 4: [ 2362.090912] cr3:0x2A3BC000

  1. 5: [ 2362.090913] eax:0x00000026

  1. 6: [ 2362.090914] ebx:0x00000000

  1. 7: [ 2362.090915] ecx:0xFFFFFEEC

  1. 8: [ 2362.090915] edx:0x00000000

  1. 9: [ 2362.090916] esp:0xE303BF3C

  1. 10: [ 2362.090917] ebp:0xE303BF58

  1. 11: [ 2362.090917] esi:0x000003F2

  1. 12: [ 2362.090918] edi:0x00741918

  1. 13: [ 2362.090919] tss:0x00000080

  1. 14: [ 2362.090920] ldt:0x00000000

  1. 15: [ 2362.090920] Memory at 0xe303bf4e

  1. 16: [ 2362.090921] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 17: [ 2362.090925] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 18: [ 2362.090928] FF 00 00 00 80 F5 ----

  1. 19: [ 2362.090931]

  1. 20: [ 2362.090932] gdt:0xF5800000(0x00FF)

  1. 21: [ 2362.090933] Memory at 0xf5800000

  1. 22: [ 2362.090934] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 23: [ 2362.090937] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 24: [ 2362.090940] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 25: [ 2362.090944] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 26: [ 2362.090948] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 27: [ 2362.090951] FF FF D0 28 6F F2 DF B7 00 00 00 00 00 00 00 00 ---- (o

  1. 28: [ 2362.090955] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 29: [ 2362.090959] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 30: [ 2362.090963]

  1. 31: [ 2362.090963] Memory at 0xe303bf4e

  1. 32: [ 2362.090964] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 33: [ 2362.090967] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 34: [ 2362.090970] FF 07 00 B0 75 C1 ---- u

  1. 35: [ 2362.090974]

  1. 36: [ 2362.090974] idt:0xC175B000(0x07FF)

  1. 37: [ 2362.090975] Memory at 0xc175b000

  1. 38: [ 2362.090976] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 39: [ 2362.090979] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 40: [ 2362.090982] 3C CF 60 00 00 8E 52 C1 D4 CF 60 00 00 8E 52 C1 ---- < ` R ` R

  1. 41: [ 2362.090986] 2C D0 60 00 00 8E 52 C1 4C D1 60 00 00 EE 52 C1 ---- , ` R L ` R

  1. 42: [ 2362.090990] EC CE 60 00 00 EE 52 C1 F8 CE 60 00 00 8E 52 C1 ---- ` R ` R

  1. 43: [ 2362.090994] 04 CF 60 00 00 8E 52 C1 D8 CE 60 00 00 8E 52 C1 ---- ` R ` R

  1. 44: [ 2362.090998] 00 00 F8 00 00 85 00 00 10 CF 60 00 00 8E 52 C1 ---- ` R

  1. 45: [ 2362.091002] 1C CF 60 00 00 8E 52 C1 24 CF 60 00 00 8E 52 C1 ---- ` R $ ` R

  1. 46: [ 2362.091005]

  1. 47: [ 2362.097688] ###################################################################

对IDT和GDT指向的内存进一步的解析

  1. 1: #include<linux/init.h>

  1. 2: #include<linux/module.h>

  1. 3: #include<linux/list.h>

  1. 4: #include<linux/sched.h>

  1. 5: #include<linux/proc_fs.h>

  1. 6: #include<linux/mm_types.h>

  1. 7: #include<linux/fs.h>

  1. 8: #include<linux/path.h>

  1. 9: #include<linux/dcache.h>

  1. 10: #include<linux/mm.h>

  1. 11: #include<linux/mmzone.h>

  1. 12: #include<linux/vmalloc.h>

  1. 13: 

  1. 14: MODULE_LICENSE("GPL");

  1. 15: void printRawData(unsigned long size, const u_char* data)

  1. 16: {

  1. 17: if (size == 0)

  1. 18: {

  1. 19: return;

  1. 20: }

  1. 21: 

  1. 22: printk("Memory at 0x%08x\n", (u32)data);

  1. 23: unsigned long i = 0;

  1. 24: for (i=0;i<16;i++)

  1. 25: {

  1. 26: printk("%4X", i);

  1. 27: }

  1. 28: printk("\n");

  1. 29: for (i=0;i<16;i++)

  1. 30: {

  1. 31: printk("%4s", "__");

  1. 32: }

  1. 33: 

  1. 34: char lineSummary[17] = {0,};

  1. 35: unsigned long pos = 0;

  1. 36: for (i=0;i<size;i++)

  1. 37: {

  1. 38: if ((pos = i % 16) == 0)

  1. 39: {

  1. 40: if (i != 0)

  1. 41: {

  1. 42: printk(" ---- %s\n", lineSummary);

  1. 43: memset(lineSummary, 0, 17);

  1. 44: }

  1. 45: else

  1. 46: {

  1. 47: printk("\n");

  1. 48: }

  1. 49: }

  1. 50: 

  1. 51: printk(" %02X", *(data + i));

  1. 52: 

  1. 53: if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)

  1. 54: {

  1. 55: lineSummary[pos] = *(data + i);

  1. 56: }

  1. 57: else

  1. 58: {

  1. 59: lineSummary[pos] = ' ';

  1. 60: }

  1. 61: }

  1. 62: 

  1. 63: if (size % 16 != 0)

  1. 64: {

  1. 65: for (i=0;i<16 - (size%16);i++)

  1. 66: {

  1. 67: printk(" ");

  1. 68: }

  1. 69: }

  1. 70: 

  1. 71: printk(" ---- %s\n", lineSummary);

  1. 72: printk("\n");

  1. 73: }

  1. 74: void analyzeGDTEntry(char* buffer)

  1. 75: {

  1. 76: u32 limit;

  1. 77: u32 base;

  1. 78: u8 type;

  1. 79: u8 dpl;

  1. 80: u8 granularity;

  1. 81: u8 systemFlag;

  1. 82: u8 present;

  1. 83: u8 dbFlag;

  1. 84: 

  1. 85: granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7;

  1. 86: dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6;

  1. 87: 

  1. 88: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

  1. 89: systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4;

  1. 90: 

  1. 91: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

  1. 92: type = ((*(u8*)(buffer + 5)) & 0x0F);

  1. 93: 

  1. 94: limit = *(u16*)buffer;

  1. 95: limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16;

  1. 96: 

  1. 97: if (granularity == 1)

  1. 98: {

  1. 99: limit = ((limit + 1) << 12) - 1;

  1. 100: }

  1. 101: 

  1. 102: base = 0;

  1. 103: base += *(u16*)(buffer + 2);

  1. 104: base += (*(u8*)(buffer + 4)) << 16;

  1. 105: base += (*(u8*)(buffer + 7)) << 24;

  1. 106: 

  1. 107: if (limit == 0)

  1. 108: {

  1. 109: printk("[null]\n");

  1. 110: }

  1. 111: else

  1. 112: {

  1. 113: printk("0x%08x : 0x%08x, ", base, base + limit);

  1. 114: printk("G[%d] ", granularity);

  1. 115: printk("D/B[%d] ", dbFlag);

  1. 116: printk("P[%d] ", present);

  1. 117: printk("DPL[%d] ", dpl);

  1. 118: printk("S[%d] ", systemFlag);

  1. 119: printk("Type[%d] ", type);

  1. 120: if (systemFlag == 1)

  1. 121: {

  1. 122: if ((type & 0x08) != 0 )

  1. 123: {

  1. 124: // Code

  1. 125: printk("Code[");

  1. 126: if ((type & 0x04) != 0)

  1. 127: {

  1. 128: printk("Conforming ");

  1. 129: }

  1. 130: if ((type & 0x02) != 0)

  1. 131: {

  1. 132: printk("Read-Enable ");

  1. 133: }

  1. 134: if ((type & 0x01) != 0)

  1. 135: {

  1. 136: printk("Accessed ");

  1. 137: }

  1. 138: printk("]");

  1. 139: }

  1. 140: else

  1. 141: {

  1. 142: // Data

  1. 143: printk("Data[");

  1. 144: if ((type & 0x04) != 0)

  1. 145: {

  1. 146: printk("Expand-Down ");

  1. 147: }

  1. 148: if ((type & 0x02) != 0)

  1. 149: {

  1. 150: printk("Write-Enable ");

  1. 151: }

  1. 152: if ((type & 0x01) != 0)

  1. 153: {

  1. 154: printk("Accessed ");

  1. 155: }

  1. 156: printk("]");

  1. 157: }

  1. 158: }

  1. 159: else

  1. 160: {

  1. 161: if (type == 0x02)

  1. 162: {

  1. 163: printk("[LDT]");

  1. 164: }

  1. 165: else if (type == 0x05)

  1. 166: {

  1. 167: printk("[Task Gate]");

  1. 168: }

  1. 169: else if (type == 0x09)

  1. 170: {

  1. 171: printk("[32-Bit TSS(Available)]");

  1. 172: }

  1. 173: else if (type == 0x0B)

  1. 174: {

  1. 175: printk("[32-Bit TSS(Busy)]");

  1. 176: }

  1. 177: else if (type == 0x0C)

  1. 178: {

  1. 179: printk("[32-Bit Call Gate]");

  1. 180: }

  1. 181: else if (type == 0x0E)

  1. 182: {

  1. 183: printk("[32-Bit Interrupt Gate]");

  1. 184: }

  1. 185: else if (type == 0x0F)

  1. 186: {

  1. 187: printk("[32-Bit Trap Gate]");

  1. 188: }

  1. 189: }

  1. 190:

  1. 191: printk("\n");

  1. 192: }

  1. 193: 

  1. 194: 

  1. 195: }

  1. 196: 

  1. 197: void analyzeGDT(u32 size, char* buffer)

  1. 198: {

  1. 199: int i;

  1. 200: for (i = 0; i < size; i += 8)

  1. 201: {

  1. 202: printk("[%4X] ", i/8);

  1. 203: analyzeGDTEntry(buffer + i);

  1. 204: }

  1. 205: }

  1. 206: 

  1. 207: void analyzeIDTEntry(char* buffer)

  1. 208: {

  1. 209: u32 offset;

  1. 210: u32 selector;

  1. 211: u8 type;

  1. 212: u8 dpl;

  1. 213: u8 present;

  1. 214: 

  1. 215: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

  1. 216: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

  1. 217: type = ((*(u8*)(buffer + 5)) & 0x1F);

  1. 218: 

  1. 219: offset = *(u16*)buffer;

  1. 220: offset += (*(u16*)(buffer + 6)) << 16;

  1. 221: 

  1. 222: selector = *(u16*)(buffer + 2);

  1. 223: 

  1. 224: if (type == 0x0E)

  1. 225: {

  1. 226: // Interrupt Gate

  1. 227: printk("0x%08x : 0x%08x, ", selector, offset);

  1. 228: printk("P[%d] ", present);

  1. 229: printk("DPL[%d] ", dpl);

  1. 230: printk("Type[Interrupt Gate] ");

  1. 231: printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);

  1. 232: printk("\n");

  1. 233: }

  1. 234: else if (type == 0x0F)

  1. 235: {

  1. 236: // Trap Gate

  1. 237: printk("0x%08x : 0x%08x, ", selector, offset);

  1. 238: printk("P[%d] ", present);

  1. 239: printk("DPL[%d] ", dpl);

  1. 240: printk("Type[Trap Gate] ");

  1. 241: printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);

  1. 242: printk("\n");

  1. 243: }

  1. 244: else if (type == 0x05)

  1. 245: {

  1. 246: // Task Gate

  1. 247: printk("0x%08x : 0x%08x, ", selector, offset);

  1. 248: printk("P[%d] ", present);

  1. 249: printk("DPL[%d] ", dpl);

  1. 250: printk("Type[Task Gate] ");

  1. 251: printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);

  1. 252: printk("\n");

  1. 253: }

  1. 254: else

  1. 255: {

  1. 256: printk("[null]\n");

  1. 257: }

  1. 258: }

  1. 259: 

  1. 260: void analyzeIDT(u32 size, char* buffer)

  1. 261: {

  1. 262: int i;

  1. 263: for (i = 0; i < size; i += 8)

  1. 264: {

  1. 265: printk("[%4X] ", i/8);

  1. 266: analyzeIDTEntry(buffer + i);

  1. 267: }

  1. 268: }

  1. 269: 

  1. 270: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));

  1. 271: 

  1. 272: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}

  1. 273: 

  1. 274: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}

  1. 275: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val)); printk("%08s:0x%08X\n", "tss", val);}

  1. 276: 

  1. 277: #define dumpGDT() {char gdt[6]; \

  1. 278: asm("sgdt %0" : "=m"(gdt)); \

  1. 279: printRawData(6, gdt); \

  1. 280: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \

  1. 281: printRawData((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2))); \

  1. 282: analyzeGDT((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2)));}

  1. 283: 

  1. 284: #define dumpIDT() {char idt[6]; \

  1. 285: asm("sidt %0" : "=m"(idt)); \

  1. 286: printRawData(6, idt); \

  1. 287: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \

  1. 288: printRawData((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2))); \

  1. 289: analyzeIDT((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2)));}

  1. 290: 

  1. 291: static int pslist_init()

  1. 292: {

  1. 293: // analyzeUMANode();

  1. 294: // analyzeProcesses();

  1. 295:

  1. 296: // asm("mov %%cr0, %%eax;":"=a"(eax));

  1. 297: // printk("%08s:0x%08X\n", "cr0", eax);

  1. 298: 

  1. 299: printk("###################################################################\n");

  1. 300: dumpNormalReg(cr0);

  1. 301: dumpNormalReg(cr2);

  1. 302: dumpNormalReg(cr3);

  1. 303: 

  1. 304: dumpNormalReg(eax);

  1. 305: dumpNormalReg(ebx);

  1. 306: dumpNormalReg(ecx);

  1. 307: dumpNormalReg(edx);

  1. 308: 

  1. 309: dumpNormalReg(esp);

  1. 310: dumpNormalReg(ebp);

  1. 311:

  1. 312: dumpNormalReg(esi);

  1. 313: dumpNormalReg(edi);

  1. 314: 

  1. 315: dumpTSS();

  1. 316: dumpLDT();

  1. 317: 

  1. 318: dumpGDT();

  1. 319: dumpIDT();

  1. 320: 

  1. 321: return 0;

  1. 322: }

  1. 323: 

  1. 324: static void pslist_exit()

  1. 325: {

  1. 326: printk("###################################################################\n");

  1. 327: }

  1. 328: 

  1. 329: 

  1. 330: 

  1. 331: module_init(pslist_init);

  1. 332: module_exit(pslist_exit);

得到结果如下

  1. 1: [10463.061988] ###################################################################

  1. 2: [10463.061991] cr0:0x8005003B

  1. 3: [10463.061992] cr2:0xB772E000

  1. 4: [10463.061993] cr3:0x2B80F000

  1. 5: [10463.061994] eax:0x00000026

  1. 6: [10463.061995] ebx:0x00000000

  1. 7: [10463.061995] ecx:0xFFFFFEEC

  1. 8: [10463.061996] edx:0x00000000

  1. 9: [10463.061997] esp:0xEC7DDF3C

  1. 10: [10463.061998] ebp:0xEC7DDF58

  1. 11: [10463.061998] esi:0x00000468

  1. 12: [10463.061999] edi:0x004F3918

  1. 13: [10463.062000] tss:0x00000080

  1. 14: [10463.062000] ldt:0x00000000

  1. 15: [10463.062001] Memory at 0xec7ddf4e

  1. 16: [10463.062002] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 17: [10463.062005] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 18: [10463.062009] FF 00 00 00 80 F5 ----

  1. 19: [10463.062012]

  1. 20: [10463.062013] gdt:0xF5800000(0x00FF)

  1. 21: [10463.062014] Memory at 0xf5800000

  1. 22: [10463.062015] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 23: [10463.062018] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 24: [10463.062021] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 25: [10463.062025] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 26: [10463.062029] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 27: [10463.062032] FF FF D0 88 82 F2 DF B7 00 00 00 00 00 00 00 00 ----

  1. 28: [10463.062036] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 29: [10463.062040] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ----

  1. 30: [10463.062043] FF FF 00 00 00 9B CF 00 FF FF 00 00 00 93 CF 00 ----

  1. 31: [10463.062047] 49 80 00 00 00 FB C0 00 FF FF 00 00 00 F3 CF 00 ---- I

  1. 32: [10463.062051] 6B 20 80 3B 80 8B 00 F5 00 00 00 00 00 00 00 00 ---- k ;

  1. 33: [10463.062055] FF FF 00 00 00 9A 40 00 FF FF 00 00 00 9A 00 00 ---- @

  1. 34: [10463.062058] FF FF 00 00 00 92 00 00 00 00 00 00 00 92 00 00 ----

  1. 35: [10463.062062] 00 00 00 00 00 92 00 00 FF FF 00 00 00 9A 40 00 ---- @

  1. 36: [10463.062066] FF FF 00 00 00 9A 00 00 FF FF 00 00 00 92 40 00 ---- @

  1. 37: [10463.062070] FF FF 00 00 00 92 CF 00 FF FF 00 D0 F9 93 8F 33 ---- 3

  1. 38: [10463.062073] 18 00 40 5D 80 91 40 F5 00 00 00 00 00 00 00 00 ---- @] @

  1. 39: [10463.062077] 00 00 00 00 00 00 00 00 6B 20 00 B8 75 89 00 C1 ---- k u

  1. 40: [10463.062081]

  1. 41: [10463.062081] [ 0] [null]

  1. 42: [10463.062082] [ 1] [null]

  1. 43: [10463.062083] [ 2] [null]

  1. 44: [10463.062084] [ 3] [null]

  1. 45: [10463.062084] [ 4] [null]

  1. 46: [10463.062085] [ 5] [null]

  1. 47: [10463.062086] [ 6] 0xb78288d0 : 0xb78288cf, G[1] D/B[1] P[1] DPL[3] S[1] Type[2] Data[Write-Enable ]

  1. 48: [10463.062090] [ 7] [null]

  1. 49: [10463.062091] [ 8] [null]

  1. 50: [10463.062091] [ 9] [null]

  1. 51: [10463.062092] [ A] [null]

  1. 52: [10463.062093] [ B] [null]

  1. 53: [10463.062093] [ C] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[11] Code[Read-Enable Accessed ]

  1. 54: [10463.062097] [ D] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[3] Data[Write-Enable Accessed ]

  1. 55: [10463.062100] [ E] 0x00000000 : 0x08049fff, G[1] D/B[1] P[1] DPL[3] S[1] Type[11] Code[Read-Enable Accessed ]

  1. 56: [10463.062104] [ F] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[3] S[1] Type[3] Data[Write-Enable Accessed ]

  1. 57: [10463.062107] [ 10] 0xf5803b80 : 0xf5805beb, G[0] D/B[0] P[1] DPL[0] S[0] Type[11] [32-Bit TSS(Busy)]

  1. 58: [10463.062110] [ 11] [null]

  1. 59: [10463.062111] [ 12] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  1. 60: [10463.062114] [ 13] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  1. 61: [10463.062117] [ 14] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ]

  1. 62: [10463.062121] [ 15] [null]

  1. 63: [10463.062121] [ 16] [null]

  1. 64: [10463.062122] [ 17] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  1. 65: [10463.062125] [ 18] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ]

  1. 66: [10463.062128] [ 19] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ]

  1. 67: [10463.062131] [ 1A] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ]

  1. 68: [10463.062134] [ 1B] 0x33f9d000 : 0x33f9cfff, G[1] D/B[0] P[1] DPL[0] S[1] Type[3] Data[Write-Enable Accessed ]

  1. 69: [10463.062138] [ 1C] 0xf5805d40 : 0xf5805d58, G[0] D/B[1] P[1] DPL[0] S[1] Type[1] Data[Accessed ]

  1. 70: [10463.062141] [ 1D] [null]

  1. 71: [10463.062142] [ 1E] [null]

  1. 72: [10463.062142] [ 1F] 0xc175b800 : 0xc175d86b, G[0] D/B[0] P[1] DPL[0] S[0] Type[9] [32-Bit TSS(Available)]

  1. 73: [10463.062145] Memory at 0xec7ddf4e

  1. 74: [10463.062146] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 75: [10463.062149] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 76: [10463.062152] FF 07 00 B0 75 C1 ---- u

  1. 77: [10463.062156]

  1. 78: [10463.062156] idt:0xC175B000(0x07FF)

  1. 79: [10463.062157] Memory at 0xc175b000

  1. 80: [10463.062158] 0 1 2 3 4 5 6 7 8 9 A B C D E F

  1. 81: [10463.062161] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __

  1. 82: [10463.062164] 3C CF 60 00 00 8E 52 C1 D4 CF 60 00 00 8E 52 C1 ---- < ` R ` R

  1. 83: [10463.062168] 2C D0 60 00 00 8E 52 C1 4C D1 60 00 00 EE 52 C1 ---- , ` R L ` R

  1. 84: [10463.062172] EC CE 60 00 00 EE 52 C1 F8 CE 60 00 00 8E 52 C1 ---- ` R ` R

  1. 85: [10463.062175] 04 CF 60 00 00 8E 52 C1 D8 CE 60 00 00 8E 52 C1 ---- ` R ` R

  1. 86: [10463.062179] 00 00 F8 00 00 85 00 00 10 CF 60 00 00 8E 52 C1 ---- ` R

  1. 87: [10463.062183] 1C CF 60 00 00 8E 52 C1 24 CF 60 00 00 8E 52 C1 ---- ` R $ ` R

  1. 88: [10463.062187] 2C CF 60 00 00 8E 52 C1 84 D1 60 00 00 8E 52 C1 ---- , ` R ` R

  1. 89: [10463.062190] 60 CF 60 00 00 8E 52 C1 54 CF 60 00 00 8E 52 C1 ---- ` ` R T ` R

  1. 90: [10463.062194] C0 CE 60 00 00 8E 52 C1 34 CF 60 00 00 8E 52 C1 ---- ` R 4 ` R

  1. 91: [10463.062198] 48 CF 60 00 00 8E 52 C1 CC CE 60 00 00 8E 52 C1 ---- H ` R ` R

  1. 92: [10463.062202] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P

  1. 93: [10463.062205] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P

  1. 94: [10463.062209] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P

  1. 95: [10463.062213] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P

  1. 96: [10463.062217] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P

  1. 97: [10463.062221] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P

  1. 98: [10463.062224] D4 CA 60 00 00 8E 52 C1 44 37 60 00 00 8E 53 C1 ---- ` R D7` S

  1. 99: [10463.062228] 48 37 60 00 00 8E 53 C1 4C 37 60 00 00 8E 53 C1 ---- H7` S L7` S

  1. 100: [10463.062232] 50 37 60 00 00 8E 53 C1 54 37 60 00 00 8E 53 C1 ---- P7` S T7` S

  1. 101: [10463.062236] 58 37 60 00 00 8E 53 C1 60 37 60 00 00 8E 53 C1 ---- X7` S `7` S

  1. 102: [10463.062239] 64 37 60 00 00 8E 53 C1 68 37 60 00 00 8E 53 C1 ---- d7` S h7` S

  1. 103: [10463.062243] 6C 37 60 00 00 8E 53 C1 70 37 60 00 00 8E 53 C1 ---- l7` S p7` S

  1. 104: [10463.062247] 74 37 60 00 00 8E 53 C1 78 37 60 00 00 8E 53 C1 ---- t7` S x7` S

  1. 105: [10463.062251] 80 37 60 00 00 8E 53 C1 84 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 106: [10463.062254] 88 37 60 00 00 8E 53 C1 8C 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 107: [10463.062260] 90 37 60 00 00 8E 53 C1 94 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 108: [10463.062264] 98 37 60 00 00 8E 53 C1 A0 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 109: [10463.062268] A4 37 60 00 00 8E 53 C1 A8 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 110: [10463.062272] AC 37 60 00 00 8E 53 C1 B0 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 111: [10463.062275] B4 37 60 00 00 8E 53 C1 B8 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 112: [10463.062279] C0 37 60 00 00 8E 53 C1 C4 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 113: [10463.062283] C8 37 60 00 00 8E 53 C1 CC 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 114: [10463.062287] D0 37 60 00 00 8E 53 C1 D4 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 115: [10463.062291] D8 37 60 00 00 8E 53 C1 E0 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 116: [10463.062294] E4 37 60 00 00 8E 53 C1 E8 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 117: [10463.062298] EC 37 60 00 00 8E 53 C1 F0 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 118: [10463.062302] F4 37 60 00 00 8E 53 C1 F8 37 60 00 00 8E 53 C1 ---- 7` S 7` S

  1. 119: [10463.062306] 00 38 60 00 00 8E 53 C1 04 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 120: [10463.062309] 08 38 60 00 00 8E 53 C1 0C 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 121: [10463.062313] 10 38 60 00 00 8E 53 C1 14 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 122: [10463.062317] 18 38 60 00 00 8E 53 C1 20 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 123: [10463.062321] 24 38 60 00 00 8E 53 C1 28 38 60 00 00 8E 53 C1 ---- $8` S (8` S

  1. 124: [10463.062324] 2C 38 60 00 00 8E 53 C1 30 38 60 00 00 8E 53 C1 ---- ,8` S 08` S

  1. 125: [10463.062328] 34 38 60 00 00 8E 53 C1 38 38 60 00 00 8E 53 C1 ---- 48` S 88` S

  1. 126: [10463.062332] 40 38 60 00 00 8E 53 C1 44 38 60 00 00 8E 53 C1 ---- @8` S D8` S

  1. 127: [10463.062336] 48 38 60 00 00 8E 53 C1 4C 38 60 00 00 8E 53 C1 ---- H8` S L8` S

  1. 128: [10463.062339] 50 38 60 00 00 8E 53 C1 54 38 60 00 00 8E 53 C1 ---- P8` S T8` S

  1. 129: [10463.062343] 58 38 60 00 00 8E 53 C1 60 38 60 00 00 8E 53 C1 ---- X8` S `8` S

  1. 130: [10463.062347] 64 38 60 00 00 8E 53 C1 68 38 60 00 00 8E 53 C1 ---- d8` S h8` S

  1. 131: [10463.062351] 6C 38 60 00 00 8E 53 C1 70 38 60 00 00 8E 53 C1 ---- l8` S p8` S

  1. 132: [10463.062354] 74 38 60 00 00 8E 53 C1 78 38 60 00 00 8E 53 C1 ---- t8` S x8` S

  1. 133: [10463.062358] 80 38 60 00 00 8E 53 C1 84 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 134: [10463.062362] 88 38 60 00 00 8E 53 C1 8C 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 135: [10463.062366] 90 38 60 00 00 8E 53 C1 94 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 136: [10463.062370] 98 38 60 00 00 8E 53 C1 A0 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 137: [10463.062373] A4 38 60 00 00 8E 53 C1 A8 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 138: [10463.062377] AC 38 60 00 00 8E 53 C1 B0 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 139: [10463.062381] B4 38 60 00 00 8E 53 C1 B8 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 140: [10463.062385] C0 38 60 00 00 8E 53 C1 C4 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 141: [10463.062388] C8 38 60 00 00 8E 53 C1 CC 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 142: [10463.062392] D0 38 60 00 00 8E 53 C1 D4 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 143: [10463.062396] D8 38 60 00 00 8E 53 C1 E0 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 144: [10463.062400] E4 38 60 00 00 8E 53 C1 E8 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 145: [10463.062403] EC 38 60 00 00 8E 53 C1 F0 38 60 00 00 8E 53 C1 ---- 8` S 8` S

  1. 146: [10463.062407] 98 C8 60 00 00 EF 52 C1 F8 38 60 00 00 8E 53 C1 ---- ` R 8` S

  1. 147: [10463.062411] 00 39 60 00 00 8E 53 C1 04 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 148: [10463.062415] 08 39 60 00 00 8E 53 C1 0C 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 149: [10463.062419] 10 39 60 00 00 8E 53 C1 14 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 150: [10463.062422] 18 39 60 00 00 8E 53 C1 20 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 151: [10463.062426] 24 39 60 00 00 8E 53 C1 28 39 60 00 00 8E 53 C1 ---- $9` S (9` S

  1. 152: [10463.062430] 2C 39 60 00 00 8E 53 C1 30 39 60 00 00 8E 53 C1 ---- ,9` S 09` S

  1. 153: [10463.062434] 34 39 60 00 00 8E 53 C1 38 39 60 00 00 8E 53 C1 ---- 49` S 89` S

  1. 154: [10463.062437] 40 39 60 00 00 8E 53 C1 44 39 60 00 00 8E 53 C1 ---- @9` S D9` S

  1. 155: [10463.062441] 48 39 60 00 00 8E 53 C1 4C 39 60 00 00 8E 53 C1 ---- H9` S L9` S

  1. 156: [10463.062445] 50 39 60 00 00 8E 53 C1 54 39 60 00 00 8E 53 C1 ---- P9` S T9` S

  1. 157: [10463.062449] 58 39 60 00 00 8E 53 C1 60 39 60 00 00 8E 53 C1 ---- X9` S `9` S

  1. 158: [10463.062452] 64 39 60 00 00 8E 53 C1 68 39 60 00 00 8E 53 C1 ---- d9` S h9` S

  1. 159: [10463.062456] 6C 39 60 00 00 8E 53 C1 70 39 60 00 00 8E 53 C1 ---- l9` S p9` S

  1. 160: [10463.062460] 74 39 60 00 00 8E 53 C1 78 39 60 00 00 8E 53 C1 ---- t9` S x9` S

  1. 161: [10463.062464] 80 39 60 00 00 8E 53 C1 84 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 162: [10463.062467] 88 39 60 00 00 8E 53 C1 8C 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 163: [10463.062471] 90 39 60 00 00 8E 53 C1 94 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 164: [10463.062475] 98 39 60 00 00 8E 53 C1 A0 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 165: [10463.062479] A4 39 60 00 00 8E 53 C1 A8 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 166: [10463.062482] AC 39 60 00 00 8E 53 C1 B0 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 167: [10463.062486] B4 39 60 00 00 8E 53 C1 B8 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 168: [10463.062490] C0 39 60 00 00 8E 53 C1 C4 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 169: [10463.062494] C8 39 60 00 00 8E 53 C1 CC 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 170: [10463.062497] D0 39 60 00 00 8E 53 C1 D4 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 171: [10463.062501] D8 39 60 00 00 8E 53 C1 E0 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 172: [10463.062505] E4 39 60 00 00 8E 53 C1 E8 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 173: [10463.062509] EC 39 60 00 00 8E 53 C1 F0 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 174: [10463.062513] F4 39 60 00 00 8E 53 C1 F8 39 60 00 00 8E 53 C1 ---- 9` S 9` S

  1. 175: [10463.062516] 00 3A 60 00 00 8E 53 C1 04 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 176: [10463.062520] 08 3A 60 00 00 8E 53 C1 0C 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 177: [10463.062524] 10 3A 60 00 00 8E 53 C1 14 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 178: [10463.062528] 18 3A 60 00 00 8E 53 C1 20 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 179: [10463.062531] 24 3A 60 00 00 8E 53 C1 28 3A 60 00 00 8E 53 C1 ---- $:` S (:` S

  1. 180: [10463.062535] 2C 3A 60 00 00 8E 53 C1 30 3A 60 00 00 8E 53 C1 ---- ,:` S 0:` S

  1. 181: [10463.062539] 34 3A 60 00 00 8E 53 C1 38 3A 60 00 00 8E 53 C1 ---- 4:` S 8:` S

  1. 182: [10463.062543] 40 3A 60 00 00 8E 53 C1 44 3A 60 00 00 8E 53 C1 ---- @:` S D:` S

  1. 183: [10463.062546] 48 3A 60 00 00 8E 53 C1 4C 3A 60 00 00 8E 53 C1 ---- H:` S L:` S

  1. 184: [10463.062550] 50 3A 60 00 00 8E 53 C1 54 3A 60 00 00 8E 53 C1 ---- P:` S T:` S

  1. 185: [10463.062554] 58 3A 60 00 00 8E 53 C1 60 3A 60 00 00 8E 53 C1 ---- X:` S `:` S

  1. 186: [10463.062558] 64 3A 60 00 00 8E 53 C1 68 3A 60 00 00 8E 53 C1 ---- d:` S h:` S

  1. 187: [10463.062562] 6C 3A 60 00 00 8E 53 C1 70 3A 60 00 00 8E 53 C1 ---- l:` S p:` S

  1. 188: [10463.062565] 74 3A 60 00 00 8E 53 C1 78 3A 60 00 00 8E 53 C1 ---- t:` S x:` S

  1. 189: [10463.062569] 80 3A 60 00 00 8E 53 C1 84 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 190: [10463.062573] 88 3A 60 00 00 8E 53 C1 8C 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 191: [10463.062577] 90 3A 60 00 00 8E 53 C1 94 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 192: [10463.062580] 98 3A 60 00 00 8E 53 C1 A0 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 193: [10463.062584] A4 3A 60 00 00 8E 53 C1 A8 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 194: [10463.062588] AC 3A 60 00 00 8E 53 C1 B0 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 195: [10463.062592] B4 3A 60 00 00 8E 53 C1 B8 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 196: [10463.062595] C0 3A 60 00 00 8E 53 C1 C4 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 197: [10463.062599] C8 3A 60 00 00 8E 53 C1 40 CB 60 00 00 8E 52 C1 ---- :` S @ ` R

  1. 198: [10463.062603] 78 CB 60 00 00 8E 52 C1 B0 CB 60 00 00 8E 52 C1 ---- x ` R ` R

  1. 199: [10463.062607] E8 CB 60 00 00 8E 52 C1 20 CC 60 00 00 8E 52 C1 ---- ` R ` R

  1. 200: [10463.062610] 58 CC 60 00 00 8E 52 C1 90 CC 60 00 00 8E 52 C1 ---- X ` R ` R

  1. 201: [10463.062614] C8 CC 60 00 00 8E 52 C1 38 CD 60 00 00 8E 52 C1 ---- ` R 8 ` R

  1. 202: [10463.062618] F4 3A 60 00 00 8E 53 C1 F8 3A 60 00 00 8E 53 C1 ---- :` S :` S

  1. 203: [10463.062622] 00 3B 60 00 00 8E 53 C1 04 3B 60 00 00 8E 53 C1 ---- ;` S ;` S

  1. 204: [10463.062625] 88 CE 60 00 00 8E 52 C1 0C 3B 60 00 00 8E 53 C1 ---- ` R ;` S

  1. 205: [10463.062629] E0 CD 60 00 00 8E 52 C1 00 CD 60 00 00 8E 52 C1 ---- ` R ` R

  1. 206: [10463.062633] 08 CB 60 00 00 8E 52 C1 50 CE 60 00 00 8E 52 C1 ---- ` R P ` R

  1. 207: [10463.062637] 18 CE 60 00 00 8E 52 C1 9C CA 60 00 00 8E 52 C1 ---- ` R ` R

  1. 208: [10463.062641] 64 CA 60 00 00 8E 52 C1 2C CA 60 00 00 8E 52 C1 ---- d ` R , ` R

  1. 209: [10463.062644] 70 CD 60 00 00 8E 52 C1 A8 CD 60 00 00 8E 52 C1 ---- p ` R ` R

  1. 210: [10463.062648]

  1. 211: [10463.062649] [ 0] 0x00000060 : 0xc152cf3c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 212: [10463.062651] [ 1] 0x00000060 : 0xc152cfd4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 213: [10463.062654] [ 2] 0x00000060 : 0xc152d02c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 214: [10463.062656] [ 3] 0x00000060 : 0xc152d14c, P[1] DPL[3] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 215: [10463.062659] [ 4] 0x00000060 : 0xc152ceec, P[1] DPL[3] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 216: [10463.062661] [ 5] 0x00000060 : 0xc152cef8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 217: [10463.062664] [ 6] 0x00000060 : 0xc152cf04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 218: [10463.062666] [ 7] 0x00000060 : 0xc152ced8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 219: [10463.062668] [ 8] 0x000000f8 : 0x00000000, P[1] DPL[0] Type[Task Gate] selector[index=001F, TI=0, RPL=0]

  1. 220: [10463.062671] [ 9] 0x00000060 : 0xc152cf10, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 221: [10463.062673] [ A] 0x00000060 : 0xc152cf1c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 222: [10463.062676] [ B] 0x00000060 : 0xc152cf24, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 223: [10463.062678] [ C] 0x00000060 : 0xc152cf2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 224: [10463.062681] [ D] 0x00000060 : 0xc152d184, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 225: [10463.062683] [ E] 0x00000060 : 0xc152cf60, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 226: [10463.062685] [ F] 0x00000060 : 0xc152cf54, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 227: [10463.062688] [ 10] 0x00000060 : 0xc152cec0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 228: [10463.062690] [ 11] 0x00000060 : 0xc152cf34, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 229: [10463.062693] [ 12] 0x00000060 : 0xc152cf48, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 230: [10463.062695] [ 13] 0x00000060 : 0xc152cecc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 231: [10463.062697] [ 14] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 232: [10463.062700] [ 15] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 233: [10463.062702] [ 16] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 234: [10463.062705] [ 17] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 235: [10463.062707] [ 18] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 236: [10463.062709] [ 19] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 237: [10463.062712] [ 1A] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 238: [10463.062714] [ 1B] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 239: [10463.062717] [ 1C] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 240: [10463.062719] [ 1D] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 241: [10463.062721] [ 1E] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 242: [10463.062724] [ 1F] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 243: [10463.062726] [ 20] 0x00000060 : 0xc152cad4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 244: [10463.062729] [ 21] 0x00000060 : 0xc1533744, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 245: [10463.062731] [ 22] 0x00000060 : 0xc1533748, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 246: [10463.062733] [ 23] 0x00000060 : 0xc153374c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 247: [10463.062736] [ 24] 0x00000060 : 0xc1533750, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 248: [10463.062738] [ 25] 0x00000060 : 0xc1533754, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 249: [10463.062741] [ 26] 0x00000060 : 0xc1533758, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 250: [10463.062743] [ 27] 0x00000060 : 0xc1533760, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 251: [10463.062745] [ 28] 0x00000060 : 0xc1533764, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 252: [10463.062748] [ 29] 0x00000060 : 0xc1533768, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 253: [10463.062750] [ 2A] 0x00000060 : 0xc153376c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 254: [10463.062753] [ 2B] 0x00000060 : 0xc1533770, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 255: [10463.062755] [ 2C] 0x00000060 : 0xc1533774, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 256: [10463.062757] [ 2D] 0x00000060 : 0xc1533778, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 257: [10463.062760] [ 2E] 0x00000060 : 0xc1533780, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 258: [10463.062764] [ 2F] 0x00000060 : 0xc1533784, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 259: [10463.062766] [ 30] 0x00000060 : 0xc1533788, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 260: [10463.062769] [ 31] 0x00000060 : 0xc153378c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 261: [10463.062771] [ 32] 0x00000060 : 0xc1533790, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 262: [10463.062773] [ 33] 0x00000060 : 0xc1533794, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 263: [10463.062776] [ 34] 0x00000060 : 0xc1533798, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 264: [10463.062778] [ 35] 0x00000060 : 0xc15337a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 265: [10463.062781] [ 36] 0x00000060 : 0xc15337a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 266: [10463.062783] [ 37] 0x00000060 : 0xc15337a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 267: [10463.062785] [ 38] 0x00000060 : 0xc15337ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 268: [10463.062788] [ 39] 0x00000060 : 0xc15337b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 269: [10463.062790] [ 3A] 0x00000060 : 0xc15337b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 270: [10463.062793] [ 3B] 0x00000060 : 0xc15337b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 271: [10463.062795] [ 3C] 0x00000060 : 0xc15337c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 272: [10463.062797] [ 3D] 0x00000060 : 0xc15337c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 273: [10463.062800] [ 3E] 0x00000060 : 0xc15337c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 274: [10463.062802] [ 3F] 0x00000060 : 0xc15337cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 275: [10463.062805] [ 40] 0x00000060 : 0xc15337d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 276: [10463.062807] [ 41] 0x00000060 : 0xc15337d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 277: [10463.062809] [ 42] 0x00000060 : 0xc15337d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 278: [10463.062812] [ 43] 0x00000060 : 0xc15337e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 279: [10463.062814] [ 44] 0x00000060 : 0xc15337e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 280: [10463.062817] [ 45] 0x00000060 : 0xc15337e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 281: [10463.062819] [ 46] 0x00000060 : 0xc15337ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 282: [10463.062821] [ 47] 0x00000060 : 0xc15337f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 283: [10463.062824] [ 48] 0x00000060 : 0xc15337f4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 284: [10463.062826] [ 49] 0x00000060 : 0xc15337f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 285: [10463.062829] [ 4A] 0x00000060 : 0xc1533800, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 286: [10463.062831] [ 4B] 0x00000060 : 0xc1533804, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 287: [10463.062833] [ 4C] 0x00000060 : 0xc1533808, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 288: [10463.062836] [ 4D] 0x00000060 : 0xc153380c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 289: [10463.062838] [ 4E] 0x00000060 : 0xc1533810, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 290: [10463.062841] [ 4F] 0x00000060 : 0xc1533814, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 291: [10463.062843] [ 50] 0x00000060 : 0xc1533818, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 292: [10463.062845] [ 51] 0x00000060 : 0xc1533820, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 293: [10463.062848] [ 52] 0x00000060 : 0xc1533824, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 294: [10463.062850] [ 53] 0x00000060 : 0xc1533828, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 295: [10463.062853] [ 54] 0x00000060 : 0xc153382c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 296: [10463.062855] [ 55] 0x00000060 : 0xc1533830, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 297: [10463.062858] [ 56] 0x00000060 : 0xc1533834, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 298: [10463.062860] [ 57] 0x00000060 : 0xc1533838, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 299: [10463.062862] [ 58] 0x00000060 : 0xc1533840, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 300: [10463.062865] [ 59] 0x00000060 : 0xc1533844, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 301: [10463.062867] [ 5A] 0x00000060 : 0xc1533848, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 302: [10463.062870] [ 5B] 0x00000060 : 0xc153384c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 303: [10463.062872] [ 5C] 0x00000060 : 0xc1533850, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 304: [10463.062874] [ 5D] 0x00000060 : 0xc1533854, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 305: [10463.062877] [ 5E] 0x00000060 : 0xc1533858, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 306: [10463.062879] [ 5F] 0x00000060 : 0xc1533860, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 307: [10463.062882] [ 60] 0x00000060 : 0xc1533864, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 308: [10463.062884] [ 61] 0x00000060 : 0xc1533868, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 309: [10463.062886] [ 62] 0x00000060 : 0xc153386c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 310: [10463.062889] [ 63] 0x00000060 : 0xc1533870, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 311: [10463.062891] [ 64] 0x00000060 : 0xc1533874, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 312: [10463.062894] [ 65] 0x00000060 : 0xc1533878, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 313: [10463.062896] [ 66] 0x00000060 : 0xc1533880, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 314: [10463.062898] [ 67] 0x00000060 : 0xc1533884, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 315: [10463.062901] [ 68] 0x00000060 : 0xc1533888, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 316: [10463.062903] [ 69] 0x00000060 : 0xc153388c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 317: [10463.062906] [ 6A] 0x00000060 : 0xc1533890, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 318: [10463.062908] [ 6B] 0x00000060 : 0xc1533894, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 319: [10463.062910] [ 6C] 0x00000060 : 0xc1533898, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 320: [10463.062913] [ 6D] 0x00000060 : 0xc15338a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 321: [10463.062915] [ 6E] 0x00000060 : 0xc15338a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 322: [10463.062918] [ 6F] 0x00000060 : 0xc15338a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 323: [10463.062920] [ 70] 0x00000060 : 0xc15338ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 324: [10463.062922] [ 71] 0x00000060 : 0xc15338b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 325: [10463.062925] [ 72] 0x00000060 : 0xc15338b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 326: [10463.062927] [ 73] 0x00000060 : 0xc15338b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 327: [10463.062930] [ 74] 0x00000060 : 0xc15338c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 328: [10463.062932] [ 75] 0x00000060 : 0xc15338c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 329: [10463.062935] [ 76] 0x00000060 : 0xc15338c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 330: [10463.062937] [ 77] 0x00000060 : 0xc15338cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 331: [10463.062939] [ 78] 0x00000060 : 0xc15338d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 332: [10463.062942] [ 79] 0x00000060 : 0xc15338d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 333: [10463.062944] [ 7A] 0x00000060 : 0xc15338d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 334: [10463.062947] [ 7B] 0x00000060 : 0xc15338e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 335: [10463.062949] [ 7C] 0x00000060 : 0xc15338e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 336: [10463.062951] [ 7D] 0x00000060 : 0xc15338e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 337: [10463.062954] [ 7E] 0x00000060 : 0xc15338ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 338: [10463.062956] [ 7F] 0x00000060 : 0xc15338f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 339: [10463.062959] [ 80] 0x00000060 : 0xc152c898, P[1] DPL[3] Type[Trap Gate] selector[index=000C, TI=0, RPL=0]

  1. 340: [10463.062961] [ 81] 0x00000060 : 0xc15338f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 341: [10463.062963] [ 82] 0x00000060 : 0xc1533900, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 342: [10463.062966] [ 83] 0x00000060 : 0xc1533904, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 343: [10463.062968] [ 84] 0x00000060 : 0xc1533908, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 344: [10463.062971] [ 85] 0x00000060 : 0xc153390c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 345: [10463.062973] [ 86] 0x00000060 : 0xc1533910, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 346: [10463.062975] [ 87] 0x00000060 : 0xc1533914, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 347: [10463.062978] [ 88] 0x00000060 : 0xc1533918, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 348: [10463.062980] [ 89] 0x00000060 : 0xc1533920, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 349: [10463.062983] [ 8A] 0x00000060 : 0xc1533924, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 350: [10463.062985] [ 8B] 0x00000060 : 0xc1533928, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 351: [10463.062987] [ 8C] 0x00000060 : 0xc153392c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 352: [10463.062990] [ 8D] 0x00000060 : 0xc1533930, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 353: [10463.062992] [ 8E] 0x00000060 : 0xc1533934, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 354: [10463.062995] [ 8F] 0x00000060 : 0xc1533938, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 355: [10463.062997] [ 90] 0x00000060 : 0xc1533940, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 356: [10463.062999] [ 91] 0x00000060 : 0xc1533944, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 357: [10463.063002] [ 92] 0x00000060 : 0xc1533948, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 358: [10463.063004] [ 93] 0x00000060 : 0xc153394c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 359: [10463.063007] [ 94] 0x00000060 : 0xc1533950, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 360: [10463.063009] [ 95] 0x00000060 : 0xc1533954, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 361: [10463.063011] [ 96] 0x00000060 : 0xc1533958, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 362: [10463.063014] [ 97] 0x00000060 : 0xc1533960, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 363: [10463.063016] [ 98] 0x00000060 : 0xc1533964, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 364: [10463.063019] [ 99] 0x00000060 : 0xc1533968, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 365: [10463.063021] [ 9A] 0x00000060 : 0xc153396c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 366: [10463.063023] [ 9B] 0x00000060 : 0xc1533970, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 367: [10463.063026] [ 9C] 0x00000060 : 0xc1533974, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 368: [10463.063028] [ 9D] 0x00000060 : 0xc1533978, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 369: [10463.063031] [ 9E] 0x00000060 : 0xc1533980, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 370: [10463.063033] [ 9F] 0x00000060 : 0xc1533984, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 371: [10463.063035] [ A0] 0x00000060 : 0xc1533988, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 372: [10463.063038] [ A1] 0x00000060 : 0xc153398c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 373: [10463.063040] [ A2] 0x00000060 : 0xc1533990, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 374: [10463.063043] [ A3] 0x00000060 : 0xc1533994, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 375: [10463.063045] [ A4] 0x00000060 : 0xc1533998, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 376: [10463.063047] [ A5] 0x00000060 : 0xc15339a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 377: [10463.063050] [ A6] 0x00000060 : 0xc15339a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 378: [10463.063052] [ A7] 0x00000060 : 0xc15339a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 379: [10463.063055] [ A8] 0x00000060 : 0xc15339ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 380: [10463.063057] [ A9] 0x00000060 : 0xc15339b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 381: [10463.063059] [ AA] 0x00000060 : 0xc15339b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 382: [10463.063062] [ AB] 0x00000060 : 0xc15339b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 383: [10463.063064] [ AC] 0x00000060 : 0xc15339c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 384: [10463.063067] [ AD] 0x00000060 : 0xc15339c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 385: [10463.063069] [ AE] 0x00000060 : 0xc15339c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 386: [10463.063071] [ AF] 0x00000060 : 0xc15339cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 387: [10463.063074] [ B0] 0x00000060 : 0xc15339d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 388: [10463.063076] [ B1] 0x00000060 : 0xc15339d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 389: [10463.063079] [ B2] 0x00000060 : 0xc15339d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 390: [10463.063081] [ B3] 0x00000060 : 0xc15339e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 391: [10463.063083] [ B4] 0x00000060 : 0xc15339e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 392: [10463.063086] [ B5] 0x00000060 : 0xc15339e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 393: [10463.063088] [ B6] 0x00000060 : 0xc15339ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 394: [10463.063091] [ B7] 0x00000060 : 0xc15339f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 395: [10463.063093] [ B8] 0x00000060 : 0xc15339f4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 396: [10463.063095] [ B9] 0x00000060 : 0xc15339f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 397: [10463.063098] [ BA] 0x00000060 : 0xc1533a00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 398: [10463.063100] [ BB] 0x00000060 : 0xc1533a04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 399: [10463.063103] [ BC] 0x00000060 : 0xc1533a08, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 400: [10463.063105] [ BD] 0x00000060 : 0xc1533a0c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 401: [10463.063107] [ BE] 0x00000060 : 0xc1533a10, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 402: [10463.063110] [ BF] 0x00000060 : 0xc1533a14, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 403: [10463.063112] [ C0] 0x00000060 : 0xc1533a18, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 404: [10463.063115] [ C1] 0x00000060 : 0xc1533a20, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 405: [10463.063117] [ C2] 0x00000060 : 0xc1533a24, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 406: [10463.063119] [ C3] 0x00000060 : 0xc1533a28, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 407: [10463.063122] [ C4] 0x00000060 : 0xc1533a2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 408: [10463.063124] [ C5] 0x00000060 : 0xc1533a30, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 409: [10463.063127] [ C6] 0x00000060 : 0xc1533a34, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 410: [10463.063129] [ C7] 0x00000060 : 0xc1533a38, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 411: [10463.063131] [ C8] 0x00000060 : 0xc1533a40, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 412: [10463.063134] [ C9] 0x00000060 : 0xc1533a44, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 413: [10463.063136] [ CA] 0x00000060 : 0xc1533a48, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 414: [10463.063139] [ CB] 0x00000060 : 0xc1533a4c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 415: [10463.063141] [ CC] 0x00000060 : 0xc1533a50, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 416: [10463.063143] [ CD] 0x00000060 : 0xc1533a54, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 417: [10463.063146] [ CE] 0x00000060 : 0xc1533a58, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 418: [10463.063148] [ CF] 0x00000060 : 0xc1533a60, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 419: [10463.063151] [ D0] 0x00000060 : 0xc1533a64, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 420: [10463.063153] [ D1] 0x00000060 : 0xc1533a68, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 421: [10463.063155] [ D2] 0x00000060 : 0xc1533a6c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 422: [10463.063158] [ D3] 0x00000060 : 0xc1533a70, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 423: [10463.063160] [ D4] 0x00000060 : 0xc1533a74, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 424: [10463.063163] [ D5] 0x00000060 : 0xc1533a78, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 425: [10463.063165] [ D6] 0x00000060 : 0xc1533a80, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 426: [10463.063167] [ D7] 0x00000060 : 0xc1533a84, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 427: [10463.063170] [ D8] 0x00000060 : 0xc1533a88, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 428: [10463.063172] [ D9] 0x00000060 : 0xc1533a8c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 429: [10463.063175] [ DA] 0x00000060 : 0xc1533a90, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 430: [10463.063177] [ DB] 0x00000060 : 0xc1533a94, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 431: [10463.063179] [ DC] 0x00000060 : 0xc1533a98, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 432: [10463.063182] [ DD] 0x00000060 : 0xc1533aa0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 433: [10463.063184] [ DE] 0x00000060 : 0xc1533aa4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 434: [10463.063187] [ DF] 0x00000060 : 0xc1533aa8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 435: [10463.063189] [ E0] 0x00000060 : 0xc1533aac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 436: [10463.063192] [ E1] 0x00000060 : 0xc1533ab0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 437: [10463.063194] [ E2] 0x00000060 : 0xc1533ab4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 438: [10463.063196] [ E3] 0x00000060 : 0xc1533ab8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 439: [10463.063199] [ E4] 0x00000060 : 0xc1533ac0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 440: [10463.063201] [ E5] 0x00000060 : 0xc1533ac4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 441: [10463.063203] [ E6] 0x00000060 : 0xc1533ac8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 442: [10463.063206] [ E7] 0x00000060 : 0xc152cb40, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 443: [10463.063208] [ E8] 0x00000060 : 0xc152cb78, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 444: [10463.063211] [ E9] 0x00000060 : 0xc152cbb0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 445: [10463.063213] [ EA] 0x00000060 : 0xc152cbe8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 446: [10463.063215] [ EB] 0x00000060 : 0xc152cc20, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 447: [10463.063218] [ EC] 0x00000060 : 0xc152cc58, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 448: [10463.063220] [ ED] 0x00000060 : 0xc152cc90, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 449: [10463.063223] [ EE] 0x00000060 : 0xc152ccc8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 450: [10463.063225] [ EF] 0x00000060 : 0xc152cd38, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 451: [10463.063227] [ F0] 0x00000060 : 0xc1533af4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 452: [10463.063230] [ F1] 0x00000060 : 0xc1533af8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 453: [10463.063232] [ F2] 0x00000060 : 0xc1533b00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 454: [10463.063235] [ F3] 0x00000060 : 0xc1533b04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 455: [10463.063237] [ F4] 0x00000060 : 0xc152ce88, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 456: [10463.063239] [ F5] 0x00000060 : 0xc1533b0c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 457: [10463.063242] [ F6] 0x00000060 : 0xc152cde0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 458: [10463.063244] [ F7] 0x00000060 : 0xc152cd00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 459: [10463.063247] [ F8] 0x00000060 : 0xc152cb08, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 460: [10463.063249] [ F9] 0x00000060 : 0xc152ce50, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 461: [10463.063251] [ FA] 0x00000060 : 0xc152ce18, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 462: [10463.063254] [ FB] 0x00000060 : 0xc152ca9c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 463: [10463.063256] [ FC] 0x00000060 : 0xc152ca64, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 464: [10463.063259] [ FD] 0x00000060 : 0xc152ca2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 465: [10463.063261] [ FE] 0x00000060 : 0xc152cd70, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 466: [10463.063263] [ FF] 0x00000060 : 0xc152cda8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0]

  1. 467: [10463.063754] ###################################################################


最新试验代码

  1. 1: #include<linux/init.h>

  1. 2: #include<linux/module.h>

  1. 3: #include<linux/list.h>

  1. 4: #include<linux/sched.h>

  1. 5: #include<linux/proc_fs.h>

  1. 6: #include<linux/mm_types.h>

  1. 7: #include<linux/fs.h>

  1. 8: #include<linux/path.h>

  1. 9: #include<linux/dcache.h>

  1. 10: #include<linux/mm.h>

  1. 11: #include<linux/mmzone.h>

  1. 12: #include<linux/vmalloc.h>

  1. 13: #include<asm/desc.h>

  1. 14: #include<linux/smp.h>

  1. 15: 

  1. 16: MODULE_LICENSE("GPL");

  1. 17: 

  1. 18: struct tss_segment_32 {

  1. 19: u32 prev_task_link;

  1. 20: u32 esp0;

  1. 21: u32 ss0;

  1. 22: u32 esp1;

  1. 23: u32 ss1;

  1. 24: u32 esp2;

  1. 25: u32 ss2;

  1. 26: u32 cr3;

  1. 27: u32 eip;

  1. 28: u32 eflags;

  1. 29: u32 eax;

  1. 30: u32 ecx;

  1. 31: u32 edx;

  1. 32: u32 ebx;

  1. 33: u32 esp;

  1. 34: u32 ebp;

  1. 35: u32 esi;

  1. 36: u32 edi;

  1. 37: u32 es;

  1. 38: u32 cs;

  1. 39: u32 ss;

  1. 40: u32 ds;

  1. 41: u32 fs;

  1. 42: u32 gs;

  1. 43: u32 ldt_selector;

  1. 44: u16 t;

  1. 45: u16 io_map;

  1. 46: };

  1. 47: 

  1. 48: void printBinary(char* name, char* buffer, unsigned long size)

  1. 49: {

  1. 50: int i;

  1. 51: 

  1. 52: printk("%s\n", name);

  1. 53: for (i = 0; i < size; ++i)

  1. 54: {

  1. 55: printk(" %02X", *(buffer + i));

  1. 56: if (i % 16 == 0)

  1. 57: {

  1. 58: printk("\n");

  1. 59: }

  1. 60: }

  1. 61: if (size % 16 != 0)

  1. 62: {

  1. 63: printk("\n");

  1. 64: }

  1. 65: }

  1. 66: 

  1. 67: void printRawData(unsigned long size, const u_char* data)

  1. 68: {

  1. 69: if (size == 0)

  1. 70: {

  1. 71: return;

  1. 72: }

  1. 73: 

  1. 74: printk("Memory at 0x%08x\n", (u32)data);

  1. 75: unsigned long i = 0;

  1. 76: for (i=0;i<16;i++)

  1. 77: {

  1. 78: printk("%4X", i);

  1. 79: }

  1. 80: printk("\n");

  1. 81: for (i=0;i<16;i++)

  1. 82: {

  1. 83: printk("%4s", "__");

  1. 84: }

  1. 85: 

  1. 86: char lineSummary[17] = {0,};

  1. 87: unsigned long pos = 0;

  1. 88: for (i=0;i<size;i++)

  1. 89: {

  1. 90: if ((pos = i % 16) == 0)

  1. 91: {

  1. 92: if (i != 0)

  1. 93: {

  1. 94: printk(" ---- %s\n", lineSummary);

  1. 95: memset(lineSummary, 0, 17);

  1. 96: }

  1. 97: else

  1. 98: {

  1. 99: printk("\n");

  1. 100: }

  1. 101: }

  1. 102: 

  1. 103: printk(" %02X", *(data + i));

  1. 104: 

  1. 105: if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)

  1. 106: {

  1. 107: lineSummary[pos] = *(data + i);

  1. 108: }

  1. 109: else

  1. 110: {

  1. 111: lineSummary[pos] = ' ';

  1. 112: }

  1. 113: }

  1. 114: 

  1. 115: if (size % 16 != 0)

  1. 116: {

  1. 117: for (i=0;i<16 - (size%16);i++)

  1. 118: {

  1. 119: printk(" ");

  1. 120: }

  1. 121: }

  1. 122: 

  1. 123: printk(" ---- %s\n", lineSummary);

  1. 124: printk("\n");

  1. 125: }

  1. 126: 

  1. 127: void printBuddySystemInfo(struct free_area* free_area)

  1. 128: {

  1. 129: int j;

  1. 130: struct free_area* pfreearea = free_area;

  1. 131: if (pfreearea == NULL)

  1. 132: return;

  1. 133: for (j = 0; j < MAX_ORDER; ++j)

  1. 134: {

  1. 135: //printBinary("free_area", (char*)(pfreearea + j), sizeof(struct free_area));

  1. 136: // printRawData(sizeof(struct free_area), (char*)(pfreearea + j));

  1. 137: printk("%5d", (pfreearea + j)->nr_free);

  1. 138: }

  1. 139: printk("\n");

  1. 140: }

  1. 141: 

  1. 142: void printPagesetInfo(struct per_cpu_pageset *pageset)

  1. 143: {

  1. 144: printk("pageset: 0x%08x\n", pageset);

  1. 145: printRawData(sizeof(*pageset), pageset);

  1. 146: // struct per_cpu_pages pages = pageset->pcp;

  1. 147: // printk("Pageset Info:\n");

  1. 148: 

  1. 149: // printk(" count:\t\t%d\n", pages.count);

  1. 150: // printk(" high:\t\t%d\n", pages.high);

  1. 151: // printk(" batch:\t\t%d\n", pages.batch);

  1. 152: }

  1. 153: 

  1. 154: int analyzeUMANode()

  1. 155: {

  1. 156: int i,j;

  1. 157: unsigned long node_present_pages;

  1. 158: unsigned long node_spanned_pages;

  1. 159: struct pglist_data* node_0;

  1. 160:

  1. 161: struct zone* pzone;

  1. 162: unsigned long start_pfn;

  1. 163: unsigned long present_pages;

  1. 164: unsigned long spanned_pages;

  1. 165:

  1. 166: // struct page* first_page;

  1. 167: 

  1. 168: 

  1. 169: printk("###################################################################\n");

  1. 170: 

  1. 171: // printk(KERN_INFO "/proc/%s created\n", PROCFS_NAME);

  1. 172: node_0 = NODE_DATA(0);

  1. 173: printk("node_0 at 0x%08x\n", node_0);

  1. 174: if (node_0 == NULL)

  1. 175: return 0;

  1. 176: 

  1. 177: node_present_pages = node_0->node_present_pages;

  1. 178: node_spanned_pages = node_0->node_spanned_pages;

  1. 179: printk("present pages: %d\n", node_present_pages);

  1. 180: printk("spanned pages: %d\n", node_spanned_pages);

  1. 181:

  1. 182: for (i = 0; i < MAX_NR_ZONES; ++i)

  1. 183: {

  1. 184: pzone = &node_0->node_zones[i];

  1. 185: if (pzone == NULL)

  1. 186: continue;

  1. 187: printk("Zone %d Name: %s\n", i, pzone->name);

  1. 188: start_pfn = pzone->zone_start_pfn;

  1. 189: printk("start_pfn : %d\n", start_pfn);

  1. 190: present_pages = pzone->present_pages;

  1. 191: printk("present_pages : %d\n", present_pages);

  1. 192: spanned_pages = pzone->spanned_pages;

  1. 193: printk("spanned_pages : %d\n", spanned_pages);

  1. 194: printk("%8d MB - %8d MB\n", start_pfn * PAGE_SIZE / 1024 / 1024, (start_pfn + spanned_pages) * PAGE_SIZE / 1024 / 1024);

  1. 195:

  1. 196: printBuddySystemInfo(&pzone->free_area);

  1. 197: printPagesetInfo(pzone->pageset);

  1. 198: 

  1. 199: }

  1. 200: // first_page = mem_map;

  1. 201: // int i;

  1. 202: // for (i = 0; i < node_present_pages; ++i)

  1. 203: // {

  1. 204: // unsigned long bLocked = (first_page + i)->flags == PG_locked;

  1. 205: // if (!bLocked)

  1. 206: // {

  1. 207: // // printk("Page->virtual : 0x%08x, flags = 0x%08x\n", page_address(first_page + i), (first_page + i)->flags);

  1. 208: // }

  1. 209: // }

  1. 210: return 0;

  1. 211: }

  1. 212: 

  1. 213: int analyzeProcesses()

  1. 214: {

  1. 215: struct task_struct *pos;

  1. 216: struct list_head *current_head;

  1. 217: int count=0;

  1. 218: 

  1. 219: struct vm_area_struct* vma;

  1. 220: bool bFirst;

  1. 221: struct file* vm_file;

  1. 222: char szBuff[1024] = {0};

  1. 223: char szTmp[1024] = {0};

  1. 224: 

  1. 225: struct dentry* vm_dentry;

  1. 226: struct dentry* parent;

  1. 227: 

  1. 228: unsigned long vm_flags;

  1. 229:

  1. 230: printk("Traversal module is working..\n");

  1. 231: // printk("Parameters:\n");

  1. 232: // printk("%20s\t0x%08x\n", "buffer", buffer);

  1. 233: // printk("%20s\t0x%08x\n", "buffer_pos", buffer_pos);

  1. 234: // printk("%20s\t0x%08x\n", "offset", offset);

  1. 235: // printk("%20s\t0x%08x\n", "buffer_len", buffer_len);

  1. 236: // printk("%20s\t0x%08x\n", "eof", eof);

  1. 237: // printk("%20s\t0x%08x\n", "data", data);

  1. 238: 

  1. 239: current_head=&(current->tasks);

  1. 240: if (current_head == NULL)

  1. 241: return 0;

  1. 242: list_for_each_entry(pos,current_head,tasks)

  1. 243: {

  1. 244: count++;

  1. 245: if (strcmp(pos->comm, "gnome-terminal") != 0)

  1. 246: {

  1. 247: continue;

  1. 248: }

  1. 249: // ret += sprintf(buffer+ret, "[process %d]: %s\'s pid is %d\n",count,pos->comm,pos->pid);

  1. 250: // ret += sprintf(buffer + ret, "%40s:\n", pos->comm);

  1. 251: // ret += sprintf(buffer + ret, "\t%20s:\t%d\n", "pid", pos->pid);

  1. 252: // ret += sprintf(buffer + ret, "\t%20s:\t%d\n", "state", pos->state);

  1. 253: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "exec_start", pos->se.exec_start);

  1. 254: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "sum_exec_runtime", pos->se.sum_exec_runtime);

  1. 255: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "vruntime", pos->se.vruntime);

  1. 256: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "prev_sum_exec_runtime", pos->se.prev_sum_exec_runtime);

  1. 257: // printk("%40s:\n", pos->comm);

  1. 258: // printk("\t%20s:\t%d\n", "pid", pos->pid);

  1. 259: // printk("\t%20s:\t%d\n", "state", pos->state);

  1. 260: // printk("\t%20s:\t0x%016llx\n", "exec_start", pos->se.exec_start);

  1. 261: // printk("\t%20s:\t0x%016llx\n", "sum_exec_runtime", pos->se.sum_exec_runtime);

  1. 262: // printk("\t%20s:\t0x%016llx\n", "vruntime", pos->se.vruntime);

  1. 263: // printk("\t%20s:\t0x%016llx\n", "prev_sum_exec_runtime", pos->se.prev_sum_exec_runtime);

  1. 264: if (pos == NULL)

  1. 265: continue;

  1. 266: if (pos->mm != NULL && pos->mm->mmap != NULL)

  1. 267: {

  1. 268: // printk("[process %d]: mmap is 0x%08x\n", pos->pid, pos->mm->mmap);

  1. 269: vma = pos->mm->mmap;

  1. 270: bFirst = true;

  1. 271: while (vma != NULL && (vma != pos->mm->mmap || bFirst))

  1. 272: {

  1. 273: vm_file = vma->vm_file;

  1. 274: if (vm_file != NULL)

  1. 275: {

  1. 276: printk("\t0x%08x - 0x%08x\n", vma->vm_start, vma->vm_end);

  1. 277:

  1. 278: vm_dentry = vm_file->f_dentry;

  1. 279: if (vm_dentry != NULL)

  1. 280: {

  1. 281: parent = vm_dentry;

  1. 282: while (parent != NULL && strcmp(parent->d_name.name, "/") != 0)

  1. 283: {

  1. 284: //printk("\t%20s:\t%s\n", "name", parent->d_name.name);

  1. 285: strcpy(szTmp, szBuff);

  1. 286: memset(szBuff, 0, 1024);

  1. 287: sprintf(szBuff, "%s/%s", parent->d_name.name, szTmp);

  1. 288: parent = parent->d_parent;

  1. 289: }

  1. 290: szBuff[strlen(szBuff) - 1] = 0;

  1. 291: printk("\t%20s:\t/%s\n", "name", szBuff);

  1. 292: }

  1. 293: vm_flags = vma->vm_flags;

  1. 294: printk("%d\n", vm_flags);

  1. 295: // memset(szBuff, 0, 1024);

  1. 296: // if (vm_flags & VM_READ != 0)

  1. 297: // {

  1. 298: // strcpy(szTmp, szBuff);

  1. 299: // memset(szBuff, 0, 1024);

  1. 300: // sprintf(szBuff, "%s VM_READ", szTmp);

  1. 301: // }

  1. 302: // if (vm_flags & VM_WRITE != 0)

  1. 303: // {

  1. 304: // strcpy(szTmp, szBuff);

  1. 305: // memset(szBuff, 0, 1024);

  1. 306: // sprintf(szBuff, "%s VM_WRITE", szTmp);

  1. 307: // }

  1. 308: // if (vm_flags & VM_EXEC != 0)

  1. 309: // {

  1. 310: // strcpy(szTmp, szBuff);

  1. 311: // memset(szBuff, 0, 1024);

  1. 312: // sprintf(szBuff, "%s VM_EXEC", szTmp);

  1. 313: // }

  1. 314: // if (vm_flags & VM_SHARED != 0)

  1. 315: // {

  1. 316: // strcpy(szTmp, szBuff);

  1. 317: // memset(szBuff, 0, 1024);

  1. 318: // sprintf(szBuff, "%s VM_SHARED", szTmp);

  1. 319: // }

  1. 320: // printk("\t%20s:\t%s\n", "FLAGS", szBuff);

  1. 321: printk("\n");

  1. 322: }

  1. 323: bFirst = false;

  1. 324: vma = vma->vm_next;

  1. 325: }

  1. 326: }

  1. 327: }

  1. 328: 

  1. 329: return 0; /* everything is ok */

  1. 330: }

  1. 331: 

  1. 332: void dumpTSS(struct tss_segment_32* tss)

  1. 333: {

  1. 334: printk("TSS:\n");

  1. 335: printk("\t%16s : 0x%08X\n", "prev_task_link", tss->prev_task_link);

  1. 336: printk("\t%16s : 0x%08X\n", "esp0",tss->esp0);

  1. 337: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss0", tss->ss0, tss->ss0 >> 3, tss->ss0&0x0004, tss->ss0&0x0003);

  1. 338: printk("\t%16s : 0x%08X\n", "esp1",tss->esp1);

  1. 339: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss1", tss->ss1, tss->ss1 >> 3, tss->ss1&0x0004, tss->ss1&0x0003);

  1. 340: printk("\t%16s : 0x%08X\n", "esp2",tss->esp2);

  1. 341: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss2", tss->ss2, tss->ss2 >> 3, tss->ss2&0x0004, tss->ss2&0x0003);

  1. 342: printk("\t%16s : 0x%08X\n", "cr3",tss->cr3);

  1. 343: printk("\t%16s : 0x%08X\n", "eip",tss->eip);

  1. 344: printk("\t%16s : 0x%08X\n", "eflags",tss->eflags);

  1. 345: printk("\t%16s : 0x%08X\n", "eax",tss->eax);

  1. 346: printk("\t%16s : 0x%08X\n", "ecx",tss->ecx);

  1. 347: printk("\t%16s : 0x%08X\n", "edx",tss->edx);

  1. 348: printk("\t%16s : 0x%08X\n", "ebx",tss->ebx);

  1. 349: printk("\t%16s : 0x%08X\n", "esp",tss->esp);

  1. 350: printk("\t%16s : 0x%08X\n", "ebp",tss->ebp);

  1. 351: printk("\t%16s : 0x%08X\n", "esi",tss->esi);

  1. 352: printk("\t%16s : 0x%08X\n", "edi",tss->edi);

  1. 353: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "es", tss->es, tss->es >> 3, tss->es&0x0004, tss->es&0x0003);

  1. 354: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "cs", tss->cs, tss->cs >> 3, tss->cs&0x0004, tss->cs&0x0003);

  1. 355: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ss", tss->ss, tss->ss >> 3, tss->ss&0x0004, tss->ss&0x0003);

  1. 356: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ds", tss->ds, tss->ds >> 3, tss->ds&0x0004, tss->ds&0x0003);

  1. 357: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "fs", tss->fs, tss->fs >> 3, tss->fs&0x0004, tss->fs&0x0003);

  1. 358: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "gs", tss->gs, tss->gs >> 3, tss->gs&0x0004, tss->gs&0x0003);

  1. 359: printk("\t%16s : 0x%08X[index=%04X, TI=%d, RPL=%d]\n", "ldt_selector", tss->ldt_selector, tss->ldt_selector >> 3, tss->ldt_selector&0x0004, tss->ldt_selector&0x0003);

  1. 360: printk("\t%16s : 0x%04X\n", "t",tss->t);

  1. 361: printk("\t%16s : 0x%04X\n", "io_map",tss->io_map);

  1. 362: printRawData(0x40, tss + tss->io_map);

  1. 363: printk("\n");

  1. 364: }

  1. 365: 

  1. 366: void analyzeGDTEntry(char* buffer)

  1. 367: {

  1. 368: u32 limit;

  1. 369: u32 base;

  1. 370: u8 type;

  1. 371: u8 dpl;

  1. 372: u8 granularity;

  1. 373: u8 systemFlag;

  1. 374: u8 present;

  1. 375: u8 dbFlag;

  1. 376: 

  1. 377: granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7;

  1. 378: dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6;

  1. 379: 

  1. 380: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

  1. 381: systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4;

  1. 382: 

  1. 383: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

  1. 384: type = ((*(u8*)(buffer + 5)) & 0x0F);

  1. 385: 

  1. 386: limit = *(u16*)buffer;

  1. 387: limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16;

  1. 388: 

  1. 389: if (granularity == 1)

  1. 390: {

  1. 391: limit = ((limit + 1) << 12) - 1;

  1. 392: }

  1. 393: 

  1. 394: base = 0;

  1. 395: base += *(u16*)(buffer + 2);

  1. 396: base += (*(u8*)(buffer + 4)) << 16;

  1. 397: base += (*(u8*)(buffer + 7)) << 24;

  1. 398: 

  1. 399: if (limit == 0)

  1. 400: {

  1. 401: printk("[null]\n");

  1. 402: }

  1. 403: else

  1. 404: {

  1. 405: printk("0x%08x : 0x%08x, ", base, base + limit);

  1. 406: printk("G[%d] ", granularity);

  1. 407: printk("D/B[%d] ", dbFlag);

  1. 408: printk("P[%d] ", present);

  1. 409: printk("DPL[%d] ", dpl);

  1. 410: printk("S[%d] ", systemFlag);

  1. 411: printk("Type[%2d] ", type);

  1. 412: if (systemFlag == 1)

  1. 413: {

  1. 414: if ((type & 0x08) != 0 )

  1. 415: {

  1. 416: // Code

  1. 417: printk("Code[");

  1. 418: if ((type & 0x04) != 0)

  1. 419: {

  1. 420: printk("Conforming ");

  1. 421: }

  1. 422: if ((type & 0x02) != 0)

  1. 423: {

  1. 424: printk("Read-Enable ");

  1. 425: }

  1. 426: if ((type & 0x01) != 0)

  1. 427: {

  1. 428: printk("Accessed ");

  1. 429: }

  1. 430: printk("]");

  1. 431: }

  1. 432: else

  1. 433: {

  1. 434: // Data

  1. 435: printk("Data[");

  1. 436: if ((type & 0x04) != 0)

  1. 437: {

  1. 438: printk("Expand-Down ");

  1. 439: }

  1. 440: if ((type & 0x02) != 0)

  1. 441: {

  1. 442: printk("Write-Enable ");

  1. 443: }

  1. 444: if ((type & 0x01) != 0)

  1. 445: {

  1. 446: printk("Accessed ");

  1. 447: }

  1. 448: printk("]");

  1. 449: }

  1. 450: }

  1. 451: else

  1. 452: {

  1. 453: if (type == 0x02)

  1. 454: {

  1. 455: printk("[LDT]");

  1. 456: }

  1. 457: else if (type == 0x05)

  1. 458: {

  1. 459: printk("[Task Gate]");

  1. 460: }

  1. 461: else if (type == 0x09)

  1. 462: {

  1. 463: printk("[32-Bit TSS(Available)]");

  1. 464: struct tss_segment_32 tss;

  1. 465: memcpy(&tss, base, sizeof(tss));

  1. 466: dumpTSS(&tss);

  1. 467: }

  1. 468: else if (type == 0x0B)

  1. 469: {

  1. 470: printk("[32-Bit TSS(Busy)]");

  1. 471: struct tss_segment_32 tss;

  1. 472: memcpy(&tss, base, sizeof(tss));

  1. 473: dumpTSS(&tss);

  1. 474: }

  1. 475: else if (type == 0x0C)

  1. 476: {

  1. 477: printk("[32-Bit Call Gate]");

  1. 478: }

  1. 479: else if (type == 0x0E)

  1. 480: {

  1. 481: printk("[32-Bit Interrupt Gate]");

  1. 482: }

  1. 483: else if (type == 0x0F)

  1. 484: {

  1. 485: printk("[32-Bit Trap Gate]");

  1. 486: }

  1. 487: }

  1. 488:

  1. 489: printk("\n");

  1. 490: }

  1. 491: 

  1. 492: 

  1. 493: }

  1. 494: 

  1. 495: void analyzeTLS(char* buffer)

  1. 496: {

  1. 497: u32 limit;

  1. 498: u32 base;

  1. 499: u8 type;

  1. 500: u8 dpl;

  1. 501: u8 granularity;

  1. 502: u8 systemFlag;

  1. 503: u8 present;

  1. 504: u8 dbFlag;

  1. 505: 

  1. 506: granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7;

  1. 507: dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6;

  1. 508: 

  1. 509: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

  1. 510: systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4;

  1. 511: 

  1. 512: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

  1. 513: type = ((*(u8*)(buffer + 5)) & 0x0F);

  1. 514: 

  1. 515: limit = *(u16*)buffer;

  1. 516: limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16;

  1. 517: 

  1. 518: if (granularity == 1)

  1. 519: {

  1. 520: limit = ((limit + 1) << 12) - 1;

  1. 521: }

  1. 522: 

  1. 523:

  1. 524: 

  1. 525: base = 0;

  1. 526: base += *(u16*)(buffer + 2);

  1. 527: base += (*(u8*)(buffer + 4)) << 16;

  1. 528: base += (*(u8*)(buffer + 7)) << 24;

  1. 529: 

  1. 530: printk("0x%08x : 0x%08x, ", base, base + limit);

  1. 531: 

  1. 532: printk("TLS:%x\n", limit);

  1. 533: printRawData(0x100, (char*)base);

  1. 534: }

  1. 535: 

  1. 536: void analyzeGDT(u32 size, char* buffer)

  1. 537: {

  1. 538: int i;

  1. 539: for (i = 0; i < size; i += 8)

  1. 540: {

  1. 541: printk("[%4X] ", i/8);

  1. 542: analyzeGDTEntry(buffer + i);

  1. 543: }

  1. 544: 

  1. 545: analyzeTLS(buffer + 6*8);

  1. 546: }

  1. 547: 

  1. 548: void analyzeIDTEntry(char* buffer)

  1. 549: {

  1. 550: u32 offset;

  1. 551: u32 selector;

  1. 552: u8 type;

  1. 553: u8 dpl;

  1. 554: u8 present;

  1. 555: 

  1. 556: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7;

  1. 557: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5;

  1. 558: type = ((*(u8*)(buffer + 5)) & 0x1F);

  1. 559: 

  1. 560: offset = *(u16*)buffer;

  1. 561: offset += (*(u16*)(buffer + 6)) << 16;

  1. 562: 

  1. 563: selector = *(u16*)(buffer + 2);

  1. 564: 

  1. 565: if (type == 0x0E)

  1. 566: {

  1. 567: // Interrupt Gate

  1. 568: printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);

  1. 569: printk("P[%d] ", present);

  1. 570: printk("DPL[%d] ", dpl);

  1. 571: printk("Type[%16s] ", "Interrupt Gate");

  1. 572: printk("\n");

  1. 573: }

  1. 574: else if (type == 0x0F)

  1. 575: {

  1. 576: // Trap Gate

  1. 577: printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);

  1. 578: printk("P[%d] ", present);

  1. 579: printk("DPL[%d] ", dpl);

  1. 580: printk("Type[%16s] ", "Trap Gate");

  1. 581: printk("\n");

  1. 582: }

  1. 583: else if (type == 0x05)

  1. 584: {

  1. 585: // Task Gate

  1. 586: printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);

  1. 587: printk("P[%d] ", present);

  1. 588: printk("DPL[%d] ", dpl);

  1. 589: printk("Type[%16s] ", "Task Gate");

  1. 590: printk("\n");

  1. 591: }

  1. 592: else

  1. 593: {

  1. 594: printk("[null]\n");

  1. 595: }

  1. 596: }

  1. 597: 

  1. 598: void analyzeIDT(u32 size, char* buffer)

  1. 599: {

  1. 600: int i;

  1. 601: for (i = 0; i < size; i += 8)

  1. 602: {

  1. 603: printk("[%4X] ", i/8);

  1. 604: analyzeIDTEntry(buffer + i);

  1. 605: }

  1. 606: }

  1. 607: 

  1. 608: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));

  1. 609: 

  1. 610: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}

  1. 611: 

  1. 612: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}

  1. 613: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val)); printk("%08s:0x%08X\n", "tss", val);}

  1. 614: 

  1. 615: #define dumpGDT() {char gdt[6]; \

  1. 616: asm("sgdt %0" : "=m"(gdt)); \

  1. 617: printRawData(6, gdt); \

  1. 618: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \

  1. 619: printRawData((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2))); \

  1. 620: analyzeGDT((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2)));}

  1. 621: 

  1. 622: #define dumpIDT() {char idt[6]; \

  1. 623: asm("sidt %0" : "=m"(idt)); \

  1. 624: printRawData(6, idt); \

  1. 625: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \

  1. 626: printRawData((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2))); \

  1. 627: analyzeIDT((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2)));}

  1. 628: 

  1. 629: static int pslist_init()

  1. 630: {

  1. 631: // analyzeUMANode();

  1. 632: // analyzeProcesses();

  1. 633:

  1. 634: // asm("mov %%cr0, %%eax;":"=a"(eax));

  1. 635: // printk("%08s:0x%08X\n", "cr0", eax);

  1. 636: 

  1. 637: printk("###################################################################\n");

  1. 638: 

  1. 639: int cpu = smp_processor_id();

  1. 640: struct desc_struct *gdt = get_cpu_gdt_table(cpu);

  1. 641: printRawData(sizeof(*gdt), gdt);

  1. 642: 

  1. 643: dumpNormalReg(cr0);

  1. 644: dumpNormalReg(cr2);

  1. 645: dumpNormalReg(cr3);

  1. 646: 

  1. 647: dumpNormalReg(eax);

  1. 648: dumpNormalReg(ebx);

  1. 649: dumpNormalReg(ecx);

  1. 650: dumpNormalReg(edx);

  1. 651: 

  1. 652: dumpNormalReg(esp);

  1. 653: dumpNormalReg(ebp);

  1. 654:

  1. 655: dumpNormalReg(esi);

  1. 656: dumpNormalReg(edi);

  1. 657: 

  1. 658: dumpTSS();

  1. 659: dumpLDT();

  1. 660: 

  1. 661: dumpGDT();

  1. 662: dumpIDT();

  1. 663: 

  1. 664: return 0;

  1. 665: }

  1. 666: 

  1. 667: static void pslist_exit()

  1. 668: {

  1. 669: printk("###################################################################\n");

  1. 670: }

  1. 671: 

  1. 672: 

  1. 673: 

  1. 674: module_init(pslist_init);

  1. 675: module_exit(pslist_exit);

通过Module读取寄存器的值的更多相关文章

  1. 嵌入式 Linux应用程序如何读取(修改)芯片寄存器的值

    这一问题来自项目中一个实际的需求:我需要在Linux启动之后,确认我指定的芯片寄存器是否与我在uboot的配置一致. 举个例子:寄存器地址:0x20000010负责对DDR2的时序配置,该寄存器是在u ...

  2. GDB 修改当前判断函数的返回值(即修改寄存器的值)的方法

    工作中遇到的问题: 在GDB调试时要进入下边该判断后边的函数,而m_EtherDecode.Chk_MakeSure_IP_Pkt(pPacket,dwPacketLen)的返回值是false,所以需 ...

  3. 读取当前键值,并赋值给LED

    /********************************* 代码功能:读取当前键值,并赋值给LED 使用函数: digitalRead(数字输入端口号); 创作时间:2016*10*07 作 ...

  4. java properties读取与设值

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...

  5. Python批量修改寄存器的值

    在写代码过程中,我们修改代码中寄存器的值,但是有时寄存器的数据较多,手动修改容易出现错误而且花费的时间长 这是一段寄存器的配置值: 0x00, 0x34  0x35, 0x25  0x10, 0xd4 ...

  6. Vivado寄存器初始值问题

    前言 本复位只针对Vivado中的寄存器复位. 什么时候需要复位?到底要不要复位?怎么复位?复位有什么卵用? 该复位的寄存器需要复位,复位使得寄存器恢复初始值,有的寄存器并不需要复位(数据流路径上). ...

  7. ASP.NET上传文件,已经上传的大小保存在session中,在另一个页面中读取session的值不行

    想自己做个ASP.NET上传文件时显示进度条的, 按照自己的想法,其实也就是显示每次已经上传的字节,从网上找到一个方法是能够把文件变成流以后再慢慢写入的,我在那个循环写入的时候每循环一次都把已经上传的 ...

  8. C# Json反序列化 C# 实现表单的自动化测试<通过程序控制一个网页> 验证码处理类:UnCodebase.cs + BauDuAi 读取验证码的值(并非好的解决方案) 大话设计模式:原型模式 C# 深浅复制 MemberwiseClone

    C# Json反序列化   Json反序列化有两种方式[本人],一种是生成实体的,方便处理大量数据,复杂度稍高,一种是用匿名类写,方便读取数据,较为简单. 使用了Newtonsoft.Json,可以自 ...

  9. Arduino读取写入电压值

    读取写入方式分为数字和模拟 读取方式:(注意接地) 数字:digitalRead(pin); 模拟:analogRead(A1);float val=value*(5.0/1023.0);       ...

随机推荐

  1. 测试技能图谱skill-map

    # 测试技能图谱 ## 代码静态分析- Sonar- PMD- Infer- Android * findbugs * AndroidLint * CheckStyle- iOS * scanbuil ...

  2. linux(Ubuntu) 搭建LAMP环境

    1.更新源 sudo apt- get update 2.安装常用软件 SSH.Vim.Git.Tree ①SSH sudo apt-get install openssh-server 管理命令:s ...

  3. Oracle高水位线(HWM)及性能优化

    说到HWM,我们首先要简要的谈谈ORACLE的逻辑存储管理.我们知道,ORACLE在逻辑存储上分4个粒度:表空间,段,区和块.    (1)块:是粒度最小的存储单位,现在标准的块大小是8K,ORACL ...

  4. WinDows应急响应基础

    文件排查 开机启动有无异常文件 msconfig 敏感的文件路径 %WINDIR% %WINDIR%\SYSTEM32\ %TEMP% %LOCALAPPDATA% %APPDATA% 用户目录 新建 ...

  5. 力扣算法题—148sort-list

    Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2-> ...

  6. postgis常用的函数

    常见函数:http://postgis.net/docs/reference.html ST_GeometryType(geometry)    ——    返回几何图形的类型 ST_NDims(ge ...

  7. JS的常用正则表达式 验证密码用户名等

    //校验是否全由数字组成 function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false retur ...

  8. mysql 5.7.20 取得动态sql执行结果

    drop procedure test; delimiter ;; CREATE procedure test() -- 取动态sql的值 begin ); ); set v_sqlcounts = ...

  9. flex属性设置

    flex是一个复合属性,所以有三个值设置,这也就造成了flex可以只设置一个值或两个值: 如果flex只设置一个值: 没有单位的数,则这个值是flex-grow, 并且flex-basis变为0 有单 ...

  10. Linux 版本查詢

    # uname -a 查看  Kernel版本 # cat /etc/redhat-release查看 linux版本(以RedHat為例) 1.核心查詢:uname -a結果:Linux 2.x.x ...