通过Module读取寄存器的值
1: int eax;
2: _asm_("nop":"=a"(eax));
3: printk("Get Eax Value:\n");
4: printk("0x%08X\n", eax);
5: printk("");
1: int eax;
2: 3: asm("mov %%cr0, %%eax;":"=a"(eax));
4: printk("%08s:0x%08X\n", "cr0", eax);
5: 6: asm("mov %%cr1, %%eax;":"=a"(eax));
7: printk("%08s:0x%08X\n", "cr1", eax);
8: 9: asm("mov %%cr2, %%eax;":"=a"(eax));
10: printk("%08s:0x%08X\n", "cr2", eax);
11: 12: asm("mov %%cr3, %%eax;":"=a"(eax));
13: printk("%08s:0x%08X\n", "cr3", eax);
14: 15: printk("\n");
下面是改进后的版本
1: #include<linux/init.h> 2: #include<linux/module.h> 3: #include<linux/list.h> 4: #include<linux/sched.h> 5: #include<linux/proc_fs.h> 6: #include<linux/mm_types.h> 7: #include<linux/fs.h> 8: #include<linux/path.h> 9: #include<linux/dcache.h> 10: #include<linux/mm.h> 11: #include<linux/mmzone.h> 12: #include<linux/vmalloc.h> 13: 14: MODULE_LICENSE("GPL");
15: 16: void printRawData(unsigned long size, const u_char* data)
17: {18: if (size == 0)
19: {20: return;
21: } 22: 23: unsigned long i = 0;
24: for (i=0;i<16;i++)
25: {26: printk("%4X", i);
27: }28: printk("\n");
29: for (i=0;i<16;i++)
30: {31: printk("%4s", "__");
32: } 33: 34: char lineSummary[17] = {0,};
35: unsigned long pos = 0;
36: for (i=0;i<size;i++)
37: {38: if ((pos = i % 16) == 0)
39: {40: if (i != 0)
41: {42: printk(" ---- %s\n", lineSummary);
43: memset(lineSummary, 0, 17); 44: }45: else
46: {47: printk("\n");
48: } 49: } 50: 51: printk(" %02X", *(data + i));
52: 53: if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)
54: { 55: lineSummary[pos] = *(data + i); 56: }57: else
58: {59: lineSummary[pos] = ' ';
60: } 61: } 62: 63: if (size % 16 != 0)
64: {65: for (i=0;i<16 - (size%16);i++)
66: {67: printk(" ");
68: } 69: } 70: 71: printk(" ---- %s\n", lineSummary);
72: printk("\n");
73: } 74: 75: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));
76: 77: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}
78: 79: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}
80: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val)); printk("%08s:0x%08X\n", "tss", val);}
81: 82: #define dumpGDT() {char gdt[6]; \
83: asm("sgdt %0" : "=m"(gdt)); \
84: printRawData(6, gdt); \85: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt));}
86: 87: #define dumpIDT() {char idt[6]; \
88: asm("sidt %0" : "=m"(idt)); \
89: printRawData(6, idt); \90: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt));}
91: 92: static int pslist_init()
93: {94: // analyzeUMANode();
95: // analyzeProcesses();
96: 97: // asm("mov %%cr0, %%eax;":"=a"(eax));
98: // printk("%08s:0x%08X\n", "cr0", eax);
99: 100: printk("###################################################################\n");
101: dumpNormalReg(cr0); 102: dumpNormalReg(cr2); 103: dumpNormalReg(cr3); 104: 105: dumpNormalReg(eax); 106: dumpNormalReg(ebx); 107: dumpNormalReg(ecx); 108: dumpNormalReg(edx); 109: 110: dumpNormalReg(esp); 111: dumpNormalReg(ebp); 112: 113: dumpNormalReg(esi); 114: dumpNormalReg(edi); 115: 116: dumpTSS(); 117: dumpLDT(); 118: 119: dumpGDT(); 120: dumpIDT(); 121: 122: 123: return 0;
124: } 125: 126: static void pslist_exit()
127: {128: printk("###################################################################\n");
129: } 130: 131: module_init(pslist_init); 132: module_exit(pslist_exit);下面是输出的结果:
1: [ 2452.866241] ################################################################### 2: [ 2452.866244] cr0:0x8005003B 3: [ 2452.866245] cr2:0xB7849000 4: [ 2452.866246] cr3:0x288D0000 5: [ 2452.866247] eax:0x00000026 6: [ 2452.866247] ebx:0x00000000 7: [ 2452.866248] ecx:0xFFFFFEEC 8: [ 2452.866249] edx:0x00000000 9: [ 2452.866250] esp:0xE8929F3C 10: [ 2452.866250] ebp:0xE8929F58 11: [ 2452.866251] esi:0x000003F2 12: [ 2452.866252] edi:0x00540918 13: [ 2452.866253] tss:0x00000080 14: [ 2452.866253] ldt:0x00000000 15: [ 2452.866254] 0 1 2 3 4 5 6 7 8 9 A B C D E F 16: [ 2452.866257] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 17: [ 2452.866261] FF 00 00 00 80 F5 ---- 18: [ 2452.866264] 19: [ 2452.866265] gdt:0xF5800000(0x00FF) 20: [ 2452.866266] 0 1 2 3 4 5 6 7 8 9 A B C D E F 21: [ 2452.866271] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 22: [ 2452.866274] FF 07 00 B0 75 C1 ---- u 23: [ 2452.866277] 24: [ 2452.866278] idt:0xC175B000(0x07FF) 25: [ 2452.866758] ###################################################################更改其中的宏
1: #define dumpGDT() {char gdt[6]; \
2: asm("sgdt %0" : "=m"(gdt)); \
3: printRawData(6, gdt); \ 4: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \
5: printRawData(0x60, (u_char*)(*(u32*)(gdt + 2)));} 6: 7: #define dumpIDT() {char idt[6]; \
8: asm("sidt %0" : "=m"(idt)); \
9: printRawData(6, idt); \ 10: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \
11: printRawData(0x60, (u_char*)(*(u32*)(idt + 2)));}结果如下:
1: [ 2362.090908] ################################################################### 2: [ 2362.090911] cr0:0x8005003B 3: [ 2362.090912] cr2:0xB772E000 4: [ 2362.090912] cr3:0x2A3BC000 5: [ 2362.090913] eax:0x00000026 6: [ 2362.090914] ebx:0x00000000 7: [ 2362.090915] ecx:0xFFFFFEEC 8: [ 2362.090915] edx:0x00000000 9: [ 2362.090916] esp:0xE303BF3C 10: [ 2362.090917] ebp:0xE303BF58 11: [ 2362.090917] esi:0x000003F2 12: [ 2362.090918] edi:0x00741918 13: [ 2362.090919] tss:0x00000080 14: [ 2362.090920] ldt:0x00000000 15: [ 2362.090920] Memory at 0xe303bf4e 16: [ 2362.090921] 0 1 2 3 4 5 6 7 8 9 A B C D E F 17: [ 2362.090925] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 18: [ 2362.090928] FF 00 00 00 80 F5 ---- 19: [ 2362.090931] 20: [ 2362.090932] gdt:0xF5800000(0x00FF) 21: [ 2362.090933] Memory at 0xf5800000 22: [ 2362.090934] 0 1 2 3 4 5 6 7 8 9 A B C D E F 23: [ 2362.090937] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 24: [ 2362.090940] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 25: [ 2362.090944] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 26: [ 2362.090948] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 27: [ 2362.090951] FF FF D0 28 6F F2 DF B7 00 00 00 00 00 00 00 00 ---- (o 28: [ 2362.090955] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 29: [ 2362.090959] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 30: [ 2362.090963] 31: [ 2362.090963] Memory at 0xe303bf4e 32: [ 2362.090964] 0 1 2 3 4 5 6 7 8 9 A B C D E F 33: [ 2362.090967] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 34: [ 2362.090970] FF 07 00 B0 75 C1 ---- u 35: [ 2362.090974] 36: [ 2362.090974] idt:0xC175B000(0x07FF) 37: [ 2362.090975] Memory at 0xc175b000 38: [ 2362.090976] 0 1 2 3 4 5 6 7 8 9 A B C D E F 39: [ 2362.090979] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 40: [ 2362.090982] 3C CF 60 00 00 8E 52 C1 D4 CF 60 00 00 8E 52 C1 ---- < ` R ` R 41: [ 2362.090986] 2C D0 60 00 00 8E 52 C1 4C D1 60 00 00 EE 52 C1 ---- , ` R L ` R 42: [ 2362.090990] EC CE 60 00 00 EE 52 C1 F8 CE 60 00 00 8E 52 C1 ---- ` R ` R 43: [ 2362.090994] 04 CF 60 00 00 8E 52 C1 D8 CE 60 00 00 8E 52 C1 ---- ` R ` R 44: [ 2362.090998] 00 00 F8 00 00 85 00 00 10 CF 60 00 00 8E 52 C1 ---- ` R 45: [ 2362.091002] 1C CF 60 00 00 8E 52 C1 24 CF 60 00 00 8E 52 C1 ---- ` R $ ` R 46: [ 2362.091005] 47: [ 2362.097688] ###################################################################对IDT和GDT指向的内存进一步的解析
1: #include<linux/init.h> 2: #include<linux/module.h> 3: #include<linux/list.h> 4: #include<linux/sched.h> 5: #include<linux/proc_fs.h> 6: #include<linux/mm_types.h> 7: #include<linux/fs.h> 8: #include<linux/path.h> 9: #include<linux/dcache.h> 10: #include<linux/mm.h> 11: #include<linux/mmzone.h> 12: #include<linux/vmalloc.h> 13: 14: MODULE_LICENSE("GPL");
15: void printRawData(unsigned long size, const u_char* data)
16: {17: if (size == 0)
18: {19: return;
20: } 21: 22: printk("Memory at 0x%08x\n", (u32)data);
23: unsigned long i = 0;
24: for (i=0;i<16;i++)
25: {26: printk("%4X", i);
27: }28: printk("\n");
29: for (i=0;i<16;i++)
30: {31: printk("%4s", "__");
32: } 33: 34: char lineSummary[17] = {0,};
35: unsigned long pos = 0;
36: for (i=0;i<size;i++)
37: {38: if ((pos = i % 16) == 0)
39: {40: if (i != 0)
41: {42: printk(" ---- %s\n", lineSummary);
43: memset(lineSummary, 0, 17); 44: }45: else
46: {47: printk("\n");
48: } 49: } 50: 51: printk(" %02X", *(data + i));
52: 53: if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)
54: { 55: lineSummary[pos] = *(data + i); 56: }57: else
58: {59: lineSummary[pos] = ' ';
60: } 61: } 62: 63: if (size % 16 != 0)
64: {65: for (i=0;i<16 - (size%16);i++)
66: {67: printk(" ");
68: } 69: } 70: 71: printk(" ---- %s\n", lineSummary);
72: printk("\n");
73: }74: void analyzeGDTEntry(char* buffer)
75: { 76: u32 limit; 77: u32 base; 78: u8 type; 79: u8 dpl; 80: u8 granularity; 81: u8 systemFlag; 82: u8 present; 83: u8 dbFlag; 84: 85: granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7; 86: dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6; 87: 88: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7; 89: systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4; 90: 91: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5; 92: type = ((*(u8*)(buffer + 5)) & 0x0F); 93: 94: limit = *(u16*)buffer; 95: limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16; 96: 97: if (granularity == 1)
98: { 99: limit = ((limit + 1) << 12) - 1; 100: } 101: 102: base = 0; 103: base += *(u16*)(buffer + 2); 104: base += (*(u8*)(buffer + 4)) << 16; 105: base += (*(u8*)(buffer + 7)) << 24; 106: 107: if (limit == 0)
108: {109: printk("[null]\n");
110: }111: else
112: {113: printk("0x%08x : 0x%08x, ", base, base + limit);
114: printk("G[%d] ", granularity);
115: printk("D/B[%d] ", dbFlag);
116: printk("P[%d] ", present);
117: printk("DPL[%d] ", dpl);
118: printk("S[%d] ", systemFlag);
119: printk("Type[%d] ", type);
120: if (systemFlag == 1)
121: {122: if ((type & 0x08) != 0 )
123: {124: // Code
125: printk("Code[");
126: if ((type & 0x04) != 0)
127: {128: printk("Conforming ");
129: }130: if ((type & 0x02) != 0)
131: {132: printk("Read-Enable ");
133: }134: if ((type & 0x01) != 0)
135: {136: printk("Accessed ");
137: }138: printk("]");
139: }140: else
141: {142: // Data
143: printk("Data[");
144: if ((type & 0x04) != 0)
145: {146: printk("Expand-Down ");
147: }148: if ((type & 0x02) != 0)
149: {150: printk("Write-Enable ");
151: }152: if ((type & 0x01) != 0)
153: {154: printk("Accessed ");
155: }156: printk("]");
157: } 158: }159: else
160: {161: if (type == 0x02)
162: {163: printk("[LDT]");
164: }165: else if (type == 0x05)
166: {167: printk("[Task Gate]");
168: }169: else if (type == 0x09)
170: {171: printk("[32-Bit TSS(Available)]");
172: }173: else if (type == 0x0B)
174: {175: printk("[32-Bit TSS(Busy)]");
176: } 177: else if (type == 0x0C)
178: {179: printk("[32-Bit Call Gate]");
180: }181: else if (type == 0x0E)
182: {183: printk("[32-Bit Interrupt Gate]");
184: }185: else if (type == 0x0F)
186: {187: printk("[32-Bit Trap Gate]");
188: } 189: } 190: 191: printk("\n");
192: } 193: 194: 195: } 196: 197: void analyzeGDT(u32 size, char* buffer)
198: {199: int i;
200: for (i = 0; i < size; i += 8)
201: {202: printk("[%4X] ", i/8);
203: analyzeGDTEntry(buffer + i); 204: } 205: } 206: 207: void analyzeIDTEntry(char* buffer)
208: { 209: u32 offset; 210: u32 selector; 211: u8 type; 212: u8 dpl; 213: u8 present; 214: 215: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7; 216: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5; 217: type = ((*(u8*)(buffer + 5)) & 0x1F); 218: 219: offset = *(u16*)buffer; 220: offset += (*(u16*)(buffer + 6)) << 16; 221: 222: selector = *(u16*)(buffer + 2); 223: 224: if (type == 0x0E)
225: {226: // Interrupt Gate
227: printk("0x%08x : 0x%08x, ", selector, offset);
228: printk("P[%d] ", present);
229: printk("DPL[%d] ", dpl);
230: printk("Type[Interrupt Gate] ");
231: printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);
232: printk("\n");
233: }234: else if (type == 0x0F)
235: {236: // Trap Gate
237: printk("0x%08x : 0x%08x, ", selector, offset);
238: printk("P[%d] ", present);
239: printk("DPL[%d] ", dpl);
240: printk("Type[Trap Gate] ");
241: printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);
242: printk("\n");
243: }244: else if (type == 0x05)
245: {246: // Task Gate
247: printk("0x%08x : 0x%08x, ", selector, offset);
248: printk("P[%d] ", present);
249: printk("DPL[%d] ", dpl);
250: printk("Type[Task Gate] ");
251: printk("selector[index=%04X, TI=%d, RPL=%d]", selector >> 3, selector&0x0004, selector&0x0003);
252: printk("\n");
253: }254: else
255: {256: printk("[null]\n");
257: } 258: } 259: 260: void analyzeIDT(u32 size, char* buffer)
261: {262: int i;
263: for (i = 0; i < size; i += 8)
264: {265: printk("[%4X] ", i/8);
266: analyzeIDTEntry(buffer + i); 267: } 268: } 269: 270: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));
271: 272: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}
273: 274: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}
275: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val)); printk("%08s:0x%08X\n", "tss", val);}
276: 277: #define dumpGDT() {char gdt[6]; \
278: asm("sgdt %0" : "=m"(gdt)); \
279: printRawData(6, gdt); \280: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \
281: printRawData((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2))); \ 282: analyzeGDT((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2)));} 283: 284: #define dumpIDT() {char idt[6]; \
285: asm("sidt %0" : "=m"(idt)); \
286: printRawData(6, idt); \287: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \
288: printRawData((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2))); \ 289: analyzeIDT((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2)));} 290: 291: static int pslist_init()
292: {293: // analyzeUMANode();
294: // analyzeProcesses();
295: 296: // asm("mov %%cr0, %%eax;":"=a"(eax));
297: // printk("%08s:0x%08X\n", "cr0", eax);
298: 299: printk("###################################################################\n");
300: dumpNormalReg(cr0); 301: dumpNormalReg(cr2); 302: dumpNormalReg(cr3); 303: 304: dumpNormalReg(eax); 305: dumpNormalReg(ebx); 306: dumpNormalReg(ecx); 307: dumpNormalReg(edx); 308: 309: dumpNormalReg(esp); 310: dumpNormalReg(ebp); 311: 312: dumpNormalReg(esi); 313: dumpNormalReg(edi); 314: 315: dumpTSS(); 316: dumpLDT(); 317: 318: dumpGDT(); 319: dumpIDT(); 320: 321: return 0;
322: } 323: 324: static void pslist_exit()
325: {326: printk("###################################################################\n");
327: } 328: 329: 330: 331: module_init(pslist_init); 332: module_exit(pslist_exit);
得到结果如下
1: [10463.061988] ################################################################### 2: [10463.061991] cr0:0x8005003B 3: [10463.061992] cr2:0xB772E000 4: [10463.061993] cr3:0x2B80F000 5: [10463.061994] eax:0x00000026 6: [10463.061995] ebx:0x00000000 7: [10463.061995] ecx:0xFFFFFEEC 8: [10463.061996] edx:0x00000000 9: [10463.061997] esp:0xEC7DDF3C 10: [10463.061998] ebp:0xEC7DDF58 11: [10463.061998] esi:0x00000468 12: [10463.061999] edi:0x004F3918 13: [10463.062000] tss:0x00000080 14: [10463.062000] ldt:0x00000000 15: [10463.062001] Memory at 0xec7ddf4e 16: [10463.062002] 0 1 2 3 4 5 6 7 8 9 A B C D E F 17: [10463.062005] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 18: [10463.062009] FF 00 00 00 80 F5 ---- 19: [10463.062012] 20: [10463.062013] gdt:0xF5800000(0x00FF) 21: [10463.062014] Memory at 0xf5800000 22: [10463.062015] 0 1 2 3 4 5 6 7 8 9 A B C D E F 23: [10463.062018] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 24: [10463.062021] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 25: [10463.062025] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 26: [10463.062029] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 27: [10463.062032] FF FF D0 88 82 F2 DF B7 00 00 00 00 00 00 00 00 ---- 28: [10463.062036] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 29: [10463.062040] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ---- 30: [10463.062043] FF FF 00 00 00 9B CF 00 FF FF 00 00 00 93 CF 00 ---- 31: [10463.062047] 49 80 00 00 00 FB C0 00 FF FF 00 00 00 F3 CF 00 ---- I 32: [10463.062051] 6B 20 80 3B 80 8B 00 F5 00 00 00 00 00 00 00 00 ---- k ; 33: [10463.062055] FF FF 00 00 00 9A 40 00 FF FF 00 00 00 9A 00 00 ---- @ 34: [10463.062058] FF FF 00 00 00 92 00 00 00 00 00 00 00 92 00 00 ---- 35: [10463.062062] 00 00 00 00 00 92 00 00 FF FF 00 00 00 9A 40 00 ---- @ 36: [10463.062066] FF FF 00 00 00 9A 00 00 FF FF 00 00 00 92 40 00 ---- @ 37: [10463.062070] FF FF 00 00 00 92 CF 00 FF FF 00 D0 F9 93 8F 33 ---- 3 38: [10463.062073] 18 00 40 5D 80 91 40 F5 00 00 00 00 00 00 00 00 ---- @] @ 39: [10463.062077] 00 00 00 00 00 00 00 00 6B 20 00 B8 75 89 00 C1 ---- k u 40: [10463.062081] 41: [10463.062081] [ 0] [null] 42: [10463.062082] [ 1] [null] 43: [10463.062083] [ 2] [null] 44: [10463.062084] [ 3] [null] 45: [10463.062084] [ 4] [null] 46: [10463.062085] [ 5] [null] 47: [10463.062086] [ 6] 0xb78288d0 : 0xb78288cf, G[1] D/B[1] P[1] DPL[3] S[1] Type[2] Data[Write-Enable ] 48: [10463.062090] [ 7] [null] 49: [10463.062091] [ 8] [null] 50: [10463.062091] [ 9] [null] 51: [10463.062092] [ A] [null] 52: [10463.062093] [ B] [null] 53: [10463.062093] [ C] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[11] Code[Read-Enable Accessed ] 54: [10463.062097] [ D] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[3] Data[Write-Enable Accessed ] 55: [10463.062100] [ E] 0x00000000 : 0x08049fff, G[1] D/B[1] P[1] DPL[3] S[1] Type[11] Code[Read-Enable Accessed ] 56: [10463.062104] [ F] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[3] S[1] Type[3] Data[Write-Enable Accessed ] 57: [10463.062107] [ 10] 0xf5803b80 : 0xf5805beb, G[0] D/B[0] P[1] DPL[0] S[0] Type[11] [32-Bit TSS(Busy)] 58: [10463.062110] [ 11] [null] 59: [10463.062111] [ 12] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ] 60: [10463.062114] [ 13] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ] 61: [10463.062117] [ 14] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ] 62: [10463.062121] [ 15] [null] 63: [10463.062121] [ 16] [null] 64: [10463.062122] [ 17] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ] 65: [10463.062125] [ 18] 0x00000000 : 0x0000ffff, G[0] D/B[0] P[1] DPL[0] S[1] Type[10] Code[Read-Enable ] 66: [10463.062128] [ 19] 0x00000000 : 0x0000ffff, G[0] D/B[1] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ] 67: [10463.062131] [ 1A] 0x00000000 : 0xffffffff, G[1] D/B[1] P[1] DPL[0] S[1] Type[2] Data[Write-Enable ] 68: [10463.062134] [ 1B] 0x33f9d000 : 0x33f9cfff, G[1] D/B[0] P[1] DPL[0] S[1] Type[3] Data[Write-Enable Accessed ] 69: [10463.062138] [ 1C] 0xf5805d40 : 0xf5805d58, G[0] D/B[1] P[1] DPL[0] S[1] Type[1] Data[Accessed ] 70: [10463.062141] [ 1D] [null] 71: [10463.062142] [ 1E] [null] 72: [10463.062142] [ 1F] 0xc175b800 : 0xc175d86b, G[0] D/B[0] P[1] DPL[0] S[0] Type[9] [32-Bit TSS(Available)] 73: [10463.062145] Memory at 0xec7ddf4e 74: [10463.062146] 0 1 2 3 4 5 6 7 8 9 A B C D E F 75: [10463.062149] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 76: [10463.062152] FF 07 00 B0 75 C1 ---- u 77: [10463.062156] 78: [10463.062156] idt:0xC175B000(0x07FF) 79: [10463.062157] Memory at 0xc175b000 80: [10463.062158] 0 1 2 3 4 5 6 7 8 9 A B C D E F 81: [10463.062161] __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ 82: [10463.062164] 3C CF 60 00 00 8E 52 C1 D4 CF 60 00 00 8E 52 C1 ---- < ` R ` R 83: [10463.062168] 2C D0 60 00 00 8E 52 C1 4C D1 60 00 00 EE 52 C1 ---- , ` R L ` R 84: [10463.062172] EC CE 60 00 00 EE 52 C1 F8 CE 60 00 00 8E 52 C1 ---- ` R ` R 85: [10463.062175] 04 CF 60 00 00 8E 52 C1 D8 CE 60 00 00 8E 52 C1 ---- ` R ` R 86: [10463.062179] 00 00 F8 00 00 85 00 00 10 CF 60 00 00 8E 52 C1 ---- ` R 87: [10463.062183] 1C CF 60 00 00 8E 52 C1 24 CF 60 00 00 8E 52 C1 ---- ` R $ ` R 88: [10463.062187] 2C CF 60 00 00 8E 52 C1 84 D1 60 00 00 8E 52 C1 ---- , ` R ` R 89: [10463.062190] 60 CF 60 00 00 8E 52 C1 54 CF 60 00 00 8E 52 C1 ---- ` ` R T ` R 90: [10463.062194] C0 CE 60 00 00 8E 52 C1 34 CF 60 00 00 8E 52 C1 ---- ` R 4 ` R 91: [10463.062198] 48 CF 60 00 00 8E 52 C1 CC CE 60 00 00 8E 52 C1 ---- H ` R ` R 92: [10463.062202] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P 93: [10463.062205] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P 94: [10463.062209] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P 95: [10463.062213] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P 96: [10463.062217] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P 97: [10463.062221] D8 D0 60 00 00 8E 50 C1 D8 D0 60 00 00 8E 50 C1 ---- ` P ` P 98: [10463.062224] D4 CA 60 00 00 8E 52 C1 44 37 60 00 00 8E 53 C1 ---- ` R D7` S 99: [10463.062228] 48 37 60 00 00 8E 53 C1 4C 37 60 00 00 8E 53 C1 ---- H7` S L7` S 100: [10463.062232] 50 37 60 00 00 8E 53 C1 54 37 60 00 00 8E 53 C1 ---- P7` S T7` S 101: [10463.062236] 58 37 60 00 00 8E 53 C1 60 37 60 00 00 8E 53 C1 ---- X7` S `7` S 102: [10463.062239] 64 37 60 00 00 8E 53 C1 68 37 60 00 00 8E 53 C1 ---- d7` S h7` S 103: [10463.062243] 6C 37 60 00 00 8E 53 C1 70 37 60 00 00 8E 53 C1 ---- l7` S p7` S 104: [10463.062247] 74 37 60 00 00 8E 53 C1 78 37 60 00 00 8E 53 C1 ---- t7` S x7` S 105: [10463.062251] 80 37 60 00 00 8E 53 C1 84 37 60 00 00 8E 53 C1 ---- 7` S 7` S 106: [10463.062254] 88 37 60 00 00 8E 53 C1 8C 37 60 00 00 8E 53 C1 ---- 7` S 7` S 107: [10463.062260] 90 37 60 00 00 8E 53 C1 94 37 60 00 00 8E 53 C1 ---- 7` S 7` S 108: [10463.062264] 98 37 60 00 00 8E 53 C1 A0 37 60 00 00 8E 53 C1 ---- 7` S 7` S 109: [10463.062268] A4 37 60 00 00 8E 53 C1 A8 37 60 00 00 8E 53 C1 ---- 7` S 7` S 110: [10463.062272] AC 37 60 00 00 8E 53 C1 B0 37 60 00 00 8E 53 C1 ---- 7` S 7` S 111: [10463.062275] B4 37 60 00 00 8E 53 C1 B8 37 60 00 00 8E 53 C1 ---- 7` S 7` S 112: [10463.062279] C0 37 60 00 00 8E 53 C1 C4 37 60 00 00 8E 53 C1 ---- 7` S 7` S 113: [10463.062283] C8 37 60 00 00 8E 53 C1 CC 37 60 00 00 8E 53 C1 ---- 7` S 7` S 114: [10463.062287] D0 37 60 00 00 8E 53 C1 D4 37 60 00 00 8E 53 C1 ---- 7` S 7` S 115: [10463.062291] D8 37 60 00 00 8E 53 C1 E0 37 60 00 00 8E 53 C1 ---- 7` S 7` S 116: [10463.062294] E4 37 60 00 00 8E 53 C1 E8 37 60 00 00 8E 53 C1 ---- 7` S 7` S 117: [10463.062298] EC 37 60 00 00 8E 53 C1 F0 37 60 00 00 8E 53 C1 ---- 7` S 7` S 118: [10463.062302] F4 37 60 00 00 8E 53 C1 F8 37 60 00 00 8E 53 C1 ---- 7` S 7` S 119: [10463.062306] 00 38 60 00 00 8E 53 C1 04 38 60 00 00 8E 53 C1 ---- 8` S 8` S 120: [10463.062309] 08 38 60 00 00 8E 53 C1 0C 38 60 00 00 8E 53 C1 ---- 8` S 8` S 121: [10463.062313] 10 38 60 00 00 8E 53 C1 14 38 60 00 00 8E 53 C1 ---- 8` S 8` S 122: [10463.062317] 18 38 60 00 00 8E 53 C1 20 38 60 00 00 8E 53 C1 ---- 8` S 8` S 123: [10463.062321] 24 38 60 00 00 8E 53 C1 28 38 60 00 00 8E 53 C1 ---- $8` S (8` S 124: [10463.062324] 2C 38 60 00 00 8E 53 C1 30 38 60 00 00 8E 53 C1 ---- ,8` S 08` S 125: [10463.062328] 34 38 60 00 00 8E 53 C1 38 38 60 00 00 8E 53 C1 ---- 48` S 88` S 126: [10463.062332] 40 38 60 00 00 8E 53 C1 44 38 60 00 00 8E 53 C1 ---- @8` S D8` S 127: [10463.062336] 48 38 60 00 00 8E 53 C1 4C 38 60 00 00 8E 53 C1 ---- H8` S L8` S 128: [10463.062339] 50 38 60 00 00 8E 53 C1 54 38 60 00 00 8E 53 C1 ---- P8` S T8` S 129: [10463.062343] 58 38 60 00 00 8E 53 C1 60 38 60 00 00 8E 53 C1 ---- X8` S `8` S 130: [10463.062347] 64 38 60 00 00 8E 53 C1 68 38 60 00 00 8E 53 C1 ---- d8` S h8` S 131: [10463.062351] 6C 38 60 00 00 8E 53 C1 70 38 60 00 00 8E 53 C1 ---- l8` S p8` S 132: [10463.062354] 74 38 60 00 00 8E 53 C1 78 38 60 00 00 8E 53 C1 ---- t8` S x8` S 133: [10463.062358] 80 38 60 00 00 8E 53 C1 84 38 60 00 00 8E 53 C1 ---- 8` S 8` S 134: [10463.062362] 88 38 60 00 00 8E 53 C1 8C 38 60 00 00 8E 53 C1 ---- 8` S 8` S 135: [10463.062366] 90 38 60 00 00 8E 53 C1 94 38 60 00 00 8E 53 C1 ---- 8` S 8` S 136: [10463.062370] 98 38 60 00 00 8E 53 C1 A0 38 60 00 00 8E 53 C1 ---- 8` S 8` S 137: [10463.062373] A4 38 60 00 00 8E 53 C1 A8 38 60 00 00 8E 53 C1 ---- 8` S 8` S 138: [10463.062377] AC 38 60 00 00 8E 53 C1 B0 38 60 00 00 8E 53 C1 ---- 8` S 8` S 139: [10463.062381] B4 38 60 00 00 8E 53 C1 B8 38 60 00 00 8E 53 C1 ---- 8` S 8` S 140: [10463.062385] C0 38 60 00 00 8E 53 C1 C4 38 60 00 00 8E 53 C1 ---- 8` S 8` S 141: [10463.062388] C8 38 60 00 00 8E 53 C1 CC 38 60 00 00 8E 53 C1 ---- 8` S 8` S 142: [10463.062392] D0 38 60 00 00 8E 53 C1 D4 38 60 00 00 8E 53 C1 ---- 8` S 8` S 143: [10463.062396] D8 38 60 00 00 8E 53 C1 E0 38 60 00 00 8E 53 C1 ---- 8` S 8` S 144: [10463.062400] E4 38 60 00 00 8E 53 C1 E8 38 60 00 00 8E 53 C1 ---- 8` S 8` S 145: [10463.062403] EC 38 60 00 00 8E 53 C1 F0 38 60 00 00 8E 53 C1 ---- 8` S 8` S 146: [10463.062407] 98 C8 60 00 00 EF 52 C1 F8 38 60 00 00 8E 53 C1 ---- ` R 8` S 147: [10463.062411] 00 39 60 00 00 8E 53 C1 04 39 60 00 00 8E 53 C1 ---- 9` S 9` S 148: [10463.062415] 08 39 60 00 00 8E 53 C1 0C 39 60 00 00 8E 53 C1 ---- 9` S 9` S 149: [10463.062419] 10 39 60 00 00 8E 53 C1 14 39 60 00 00 8E 53 C1 ---- 9` S 9` S 150: [10463.062422] 18 39 60 00 00 8E 53 C1 20 39 60 00 00 8E 53 C1 ---- 9` S 9` S 151: [10463.062426] 24 39 60 00 00 8E 53 C1 28 39 60 00 00 8E 53 C1 ---- $9` S (9` S 152: [10463.062430] 2C 39 60 00 00 8E 53 C1 30 39 60 00 00 8E 53 C1 ---- ,9` S 09` S 153: [10463.062434] 34 39 60 00 00 8E 53 C1 38 39 60 00 00 8E 53 C1 ---- 49` S 89` S 154: [10463.062437] 40 39 60 00 00 8E 53 C1 44 39 60 00 00 8E 53 C1 ---- @9` S D9` S 155: [10463.062441] 48 39 60 00 00 8E 53 C1 4C 39 60 00 00 8E 53 C1 ---- H9` S L9` S 156: [10463.062445] 50 39 60 00 00 8E 53 C1 54 39 60 00 00 8E 53 C1 ---- P9` S T9` S 157: [10463.062449] 58 39 60 00 00 8E 53 C1 60 39 60 00 00 8E 53 C1 ---- X9` S `9` S 158: [10463.062452] 64 39 60 00 00 8E 53 C1 68 39 60 00 00 8E 53 C1 ---- d9` S h9` S 159: [10463.062456] 6C 39 60 00 00 8E 53 C1 70 39 60 00 00 8E 53 C1 ---- l9` S p9` S 160: [10463.062460] 74 39 60 00 00 8E 53 C1 78 39 60 00 00 8E 53 C1 ---- t9` S x9` S 161: [10463.062464] 80 39 60 00 00 8E 53 C1 84 39 60 00 00 8E 53 C1 ---- 9` S 9` S 162: [10463.062467] 88 39 60 00 00 8E 53 C1 8C 39 60 00 00 8E 53 C1 ---- 9` S 9` S 163: [10463.062471] 90 39 60 00 00 8E 53 C1 94 39 60 00 00 8E 53 C1 ---- 9` S 9` S 164: [10463.062475] 98 39 60 00 00 8E 53 C1 A0 39 60 00 00 8E 53 C1 ---- 9` S 9` S 165: [10463.062479] A4 39 60 00 00 8E 53 C1 A8 39 60 00 00 8E 53 C1 ---- 9` S 9` S 166: [10463.062482] AC 39 60 00 00 8E 53 C1 B0 39 60 00 00 8E 53 C1 ---- 9` S 9` S 167: [10463.062486] B4 39 60 00 00 8E 53 C1 B8 39 60 00 00 8E 53 C1 ---- 9` S 9` S 168: [10463.062490] C0 39 60 00 00 8E 53 C1 C4 39 60 00 00 8E 53 C1 ---- 9` S 9` S 169: [10463.062494] C8 39 60 00 00 8E 53 C1 CC 39 60 00 00 8E 53 C1 ---- 9` S 9` S 170: [10463.062497] D0 39 60 00 00 8E 53 C1 D4 39 60 00 00 8E 53 C1 ---- 9` S 9` S 171: [10463.062501] D8 39 60 00 00 8E 53 C1 E0 39 60 00 00 8E 53 C1 ---- 9` S 9` S 172: [10463.062505] E4 39 60 00 00 8E 53 C1 E8 39 60 00 00 8E 53 C1 ---- 9` S 9` S 173: [10463.062509] EC 39 60 00 00 8E 53 C1 F0 39 60 00 00 8E 53 C1 ---- 9` S 9` S 174: [10463.062513] F4 39 60 00 00 8E 53 C1 F8 39 60 00 00 8E 53 C1 ---- 9` S 9` S 175: [10463.062516] 00 3A 60 00 00 8E 53 C1 04 3A 60 00 00 8E 53 C1 ---- :` S :` S 176: [10463.062520] 08 3A 60 00 00 8E 53 C1 0C 3A 60 00 00 8E 53 C1 ---- :` S :` S 177: [10463.062524] 10 3A 60 00 00 8E 53 C1 14 3A 60 00 00 8E 53 C1 ---- :` S :` S 178: [10463.062528] 18 3A 60 00 00 8E 53 C1 20 3A 60 00 00 8E 53 C1 ---- :` S :` S 179: [10463.062531] 24 3A 60 00 00 8E 53 C1 28 3A 60 00 00 8E 53 C1 ---- $:` S (:` S 180: [10463.062535] 2C 3A 60 00 00 8E 53 C1 30 3A 60 00 00 8E 53 C1 ---- ,:` S 0:` S 181: [10463.062539] 34 3A 60 00 00 8E 53 C1 38 3A 60 00 00 8E 53 C1 ---- 4:` S 8:` S 182: [10463.062543] 40 3A 60 00 00 8E 53 C1 44 3A 60 00 00 8E 53 C1 ---- @:` S D:` S 183: [10463.062546] 48 3A 60 00 00 8E 53 C1 4C 3A 60 00 00 8E 53 C1 ---- H:` S L:` S 184: [10463.062550] 50 3A 60 00 00 8E 53 C1 54 3A 60 00 00 8E 53 C1 ---- P:` S T:` S 185: [10463.062554] 58 3A 60 00 00 8E 53 C1 60 3A 60 00 00 8E 53 C1 ---- X:` S `:` S 186: [10463.062558] 64 3A 60 00 00 8E 53 C1 68 3A 60 00 00 8E 53 C1 ---- d:` S h:` S 187: [10463.062562] 6C 3A 60 00 00 8E 53 C1 70 3A 60 00 00 8E 53 C1 ---- l:` S p:` S 188: [10463.062565] 74 3A 60 00 00 8E 53 C1 78 3A 60 00 00 8E 53 C1 ---- t:` S x:` S 189: [10463.062569] 80 3A 60 00 00 8E 53 C1 84 3A 60 00 00 8E 53 C1 ---- :` S :` S 190: [10463.062573] 88 3A 60 00 00 8E 53 C1 8C 3A 60 00 00 8E 53 C1 ---- :` S :` S 191: [10463.062577] 90 3A 60 00 00 8E 53 C1 94 3A 60 00 00 8E 53 C1 ---- :` S :` S 192: [10463.062580] 98 3A 60 00 00 8E 53 C1 A0 3A 60 00 00 8E 53 C1 ---- :` S :` S 193: [10463.062584] A4 3A 60 00 00 8E 53 C1 A8 3A 60 00 00 8E 53 C1 ---- :` S :` S 194: [10463.062588] AC 3A 60 00 00 8E 53 C1 B0 3A 60 00 00 8E 53 C1 ---- :` S :` S 195: [10463.062592] B4 3A 60 00 00 8E 53 C1 B8 3A 60 00 00 8E 53 C1 ---- :` S :` S 196: [10463.062595] C0 3A 60 00 00 8E 53 C1 C4 3A 60 00 00 8E 53 C1 ---- :` S :` S 197: [10463.062599] C8 3A 60 00 00 8E 53 C1 40 CB 60 00 00 8E 52 C1 ---- :` S @ ` R 198: [10463.062603] 78 CB 60 00 00 8E 52 C1 B0 CB 60 00 00 8E 52 C1 ---- x ` R ` R 199: [10463.062607] E8 CB 60 00 00 8E 52 C1 20 CC 60 00 00 8E 52 C1 ---- ` R ` R 200: [10463.062610] 58 CC 60 00 00 8E 52 C1 90 CC 60 00 00 8E 52 C1 ---- X ` R ` R 201: [10463.062614] C8 CC 60 00 00 8E 52 C1 38 CD 60 00 00 8E 52 C1 ---- ` R 8 ` R 202: [10463.062618] F4 3A 60 00 00 8E 53 C1 F8 3A 60 00 00 8E 53 C1 ---- :` S :` S 203: [10463.062622] 00 3B 60 00 00 8E 53 C1 04 3B 60 00 00 8E 53 C1 ---- ;` S ;` S 204: [10463.062625] 88 CE 60 00 00 8E 52 C1 0C 3B 60 00 00 8E 53 C1 ---- ` R ;` S 205: [10463.062629] E0 CD 60 00 00 8E 52 C1 00 CD 60 00 00 8E 52 C1 ---- ` R ` R 206: [10463.062633] 08 CB 60 00 00 8E 52 C1 50 CE 60 00 00 8E 52 C1 ---- ` R P ` R 207: [10463.062637] 18 CE 60 00 00 8E 52 C1 9C CA 60 00 00 8E 52 C1 ---- ` R ` R 208: [10463.062641] 64 CA 60 00 00 8E 52 C1 2C CA 60 00 00 8E 52 C1 ---- d ` R , ` R 209: [10463.062644] 70 CD 60 00 00 8E 52 C1 A8 CD 60 00 00 8E 52 C1 ---- p ` R ` R 210: [10463.062648] 211: [10463.062649] [ 0] 0x00000060 : 0xc152cf3c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 212: [10463.062651] [ 1] 0x00000060 : 0xc152cfd4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 213: [10463.062654] [ 2] 0x00000060 : 0xc152d02c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 214: [10463.062656] [ 3] 0x00000060 : 0xc152d14c, P[1] DPL[3] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 215: [10463.062659] [ 4] 0x00000060 : 0xc152ceec, P[1] DPL[3] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 216: [10463.062661] [ 5] 0x00000060 : 0xc152cef8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 217: [10463.062664] [ 6] 0x00000060 : 0xc152cf04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 218: [10463.062666] [ 7] 0x00000060 : 0xc152ced8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 219: [10463.062668] [ 8] 0x000000f8 : 0x00000000, P[1] DPL[0] Type[Task Gate] selector[index=001F, TI=0, RPL=0] 220: [10463.062671] [ 9] 0x00000060 : 0xc152cf10, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 221: [10463.062673] [ A] 0x00000060 : 0xc152cf1c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 222: [10463.062676] [ B] 0x00000060 : 0xc152cf24, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 223: [10463.062678] [ C] 0x00000060 : 0xc152cf2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 224: [10463.062681] [ D] 0x00000060 : 0xc152d184, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 225: [10463.062683] [ E] 0x00000060 : 0xc152cf60, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 226: [10463.062685] [ F] 0x00000060 : 0xc152cf54, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 227: [10463.062688] [ 10] 0x00000060 : 0xc152cec0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 228: [10463.062690] [ 11] 0x00000060 : 0xc152cf34, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 229: [10463.062693] [ 12] 0x00000060 : 0xc152cf48, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 230: [10463.062695] [ 13] 0x00000060 : 0xc152cecc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 231: [10463.062697] [ 14] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 232: [10463.062700] [ 15] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 233: [10463.062702] [ 16] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 234: [10463.062705] [ 17] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 235: [10463.062707] [ 18] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 236: [10463.062709] [ 19] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 237: [10463.062712] [ 1A] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 238: [10463.062714] [ 1B] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 239: [10463.062717] [ 1C] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 240: [10463.062719] [ 1D] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 241: [10463.062721] [ 1E] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 242: [10463.062724] [ 1F] 0x00000060 : 0xc150d0d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 243: [10463.062726] [ 20] 0x00000060 : 0xc152cad4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 244: [10463.062729] [ 21] 0x00000060 : 0xc1533744, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 245: [10463.062731] [ 22] 0x00000060 : 0xc1533748, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 246: [10463.062733] [ 23] 0x00000060 : 0xc153374c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 247: [10463.062736] [ 24] 0x00000060 : 0xc1533750, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 248: [10463.062738] [ 25] 0x00000060 : 0xc1533754, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 249: [10463.062741] [ 26] 0x00000060 : 0xc1533758, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 250: [10463.062743] [ 27] 0x00000060 : 0xc1533760, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 251: [10463.062745] [ 28] 0x00000060 : 0xc1533764, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 252: [10463.062748] [ 29] 0x00000060 : 0xc1533768, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 253: [10463.062750] [ 2A] 0x00000060 : 0xc153376c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 254: [10463.062753] [ 2B] 0x00000060 : 0xc1533770, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 255: [10463.062755] [ 2C] 0x00000060 : 0xc1533774, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 256: [10463.062757] [ 2D] 0x00000060 : 0xc1533778, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 257: [10463.062760] [ 2E] 0x00000060 : 0xc1533780, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 258: [10463.062764] [ 2F] 0x00000060 : 0xc1533784, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 259: [10463.062766] [ 30] 0x00000060 : 0xc1533788, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 260: [10463.062769] [ 31] 0x00000060 : 0xc153378c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 261: [10463.062771] [ 32] 0x00000060 : 0xc1533790, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 262: [10463.062773] [ 33] 0x00000060 : 0xc1533794, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 263: [10463.062776] [ 34] 0x00000060 : 0xc1533798, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 264: [10463.062778] [ 35] 0x00000060 : 0xc15337a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 265: [10463.062781] [ 36] 0x00000060 : 0xc15337a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 266: [10463.062783] [ 37] 0x00000060 : 0xc15337a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 267: [10463.062785] [ 38] 0x00000060 : 0xc15337ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 268: [10463.062788] [ 39] 0x00000060 : 0xc15337b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 269: [10463.062790] [ 3A] 0x00000060 : 0xc15337b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 270: [10463.062793] [ 3B] 0x00000060 : 0xc15337b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 271: [10463.062795] [ 3C] 0x00000060 : 0xc15337c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 272: [10463.062797] [ 3D] 0x00000060 : 0xc15337c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 273: [10463.062800] [ 3E] 0x00000060 : 0xc15337c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 274: [10463.062802] [ 3F] 0x00000060 : 0xc15337cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 275: [10463.062805] [ 40] 0x00000060 : 0xc15337d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 276: [10463.062807] [ 41] 0x00000060 : 0xc15337d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 277: [10463.062809] [ 42] 0x00000060 : 0xc15337d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 278: [10463.062812] [ 43] 0x00000060 : 0xc15337e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 279: [10463.062814] [ 44] 0x00000060 : 0xc15337e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 280: [10463.062817] [ 45] 0x00000060 : 0xc15337e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 281: [10463.062819] [ 46] 0x00000060 : 0xc15337ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 282: [10463.062821] [ 47] 0x00000060 : 0xc15337f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 283: [10463.062824] [ 48] 0x00000060 : 0xc15337f4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 284: [10463.062826] [ 49] 0x00000060 : 0xc15337f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 285: [10463.062829] [ 4A] 0x00000060 : 0xc1533800, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 286: [10463.062831] [ 4B] 0x00000060 : 0xc1533804, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 287: [10463.062833] [ 4C] 0x00000060 : 0xc1533808, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 288: [10463.062836] [ 4D] 0x00000060 : 0xc153380c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 289: [10463.062838] [ 4E] 0x00000060 : 0xc1533810, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 290: [10463.062841] [ 4F] 0x00000060 : 0xc1533814, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 291: [10463.062843] [ 50] 0x00000060 : 0xc1533818, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 292: [10463.062845] [ 51] 0x00000060 : 0xc1533820, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 293: [10463.062848] [ 52] 0x00000060 : 0xc1533824, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 294: [10463.062850] [ 53] 0x00000060 : 0xc1533828, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 295: [10463.062853] [ 54] 0x00000060 : 0xc153382c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 296: [10463.062855] [ 55] 0x00000060 : 0xc1533830, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 297: [10463.062858] [ 56] 0x00000060 : 0xc1533834, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 298: [10463.062860] [ 57] 0x00000060 : 0xc1533838, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 299: [10463.062862] [ 58] 0x00000060 : 0xc1533840, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 300: [10463.062865] [ 59] 0x00000060 : 0xc1533844, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 301: [10463.062867] [ 5A] 0x00000060 : 0xc1533848, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 302: [10463.062870] [ 5B] 0x00000060 : 0xc153384c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 303: [10463.062872] [ 5C] 0x00000060 : 0xc1533850, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 304: [10463.062874] [ 5D] 0x00000060 : 0xc1533854, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 305: [10463.062877] [ 5E] 0x00000060 : 0xc1533858, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 306: [10463.062879] [ 5F] 0x00000060 : 0xc1533860, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 307: [10463.062882] [ 60] 0x00000060 : 0xc1533864, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 308: [10463.062884] [ 61] 0x00000060 : 0xc1533868, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 309: [10463.062886] [ 62] 0x00000060 : 0xc153386c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 310: [10463.062889] [ 63] 0x00000060 : 0xc1533870, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 311: [10463.062891] [ 64] 0x00000060 : 0xc1533874, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 312: [10463.062894] [ 65] 0x00000060 : 0xc1533878, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 313: [10463.062896] [ 66] 0x00000060 : 0xc1533880, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 314: [10463.062898] [ 67] 0x00000060 : 0xc1533884, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 315: [10463.062901] [ 68] 0x00000060 : 0xc1533888, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 316: [10463.062903] [ 69] 0x00000060 : 0xc153388c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 317: [10463.062906] [ 6A] 0x00000060 : 0xc1533890, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 318: [10463.062908] [ 6B] 0x00000060 : 0xc1533894, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 319: [10463.062910] [ 6C] 0x00000060 : 0xc1533898, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 320: [10463.062913] [ 6D] 0x00000060 : 0xc15338a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 321: [10463.062915] [ 6E] 0x00000060 : 0xc15338a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 322: [10463.062918] [ 6F] 0x00000060 : 0xc15338a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 323: [10463.062920] [ 70] 0x00000060 : 0xc15338ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 324: [10463.062922] [ 71] 0x00000060 : 0xc15338b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 325: [10463.062925] [ 72] 0x00000060 : 0xc15338b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 326: [10463.062927] [ 73] 0x00000060 : 0xc15338b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 327: [10463.062930] [ 74] 0x00000060 : 0xc15338c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 328: [10463.062932] [ 75] 0x00000060 : 0xc15338c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 329: [10463.062935] [ 76] 0x00000060 : 0xc15338c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 330: [10463.062937] [ 77] 0x00000060 : 0xc15338cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 331: [10463.062939] [ 78] 0x00000060 : 0xc15338d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 332: [10463.062942] [ 79] 0x00000060 : 0xc15338d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 333: [10463.062944] [ 7A] 0x00000060 : 0xc15338d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 334: [10463.062947] [ 7B] 0x00000060 : 0xc15338e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 335: [10463.062949] [ 7C] 0x00000060 : 0xc15338e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 336: [10463.062951] [ 7D] 0x00000060 : 0xc15338e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 337: [10463.062954] [ 7E] 0x00000060 : 0xc15338ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 338: [10463.062956] [ 7F] 0x00000060 : 0xc15338f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 339: [10463.062959] [ 80] 0x00000060 : 0xc152c898, P[1] DPL[3] Type[Trap Gate] selector[index=000C, TI=0, RPL=0] 340: [10463.062961] [ 81] 0x00000060 : 0xc15338f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 341: [10463.062963] [ 82] 0x00000060 : 0xc1533900, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 342: [10463.062966] [ 83] 0x00000060 : 0xc1533904, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 343: [10463.062968] [ 84] 0x00000060 : 0xc1533908, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 344: [10463.062971] [ 85] 0x00000060 : 0xc153390c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 345: [10463.062973] [ 86] 0x00000060 : 0xc1533910, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 346: [10463.062975] [ 87] 0x00000060 : 0xc1533914, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 347: [10463.062978] [ 88] 0x00000060 : 0xc1533918, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 348: [10463.062980] [ 89] 0x00000060 : 0xc1533920, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 349: [10463.062983] [ 8A] 0x00000060 : 0xc1533924, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 350: [10463.062985] [ 8B] 0x00000060 : 0xc1533928, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 351: [10463.062987] [ 8C] 0x00000060 : 0xc153392c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 352: [10463.062990] [ 8D] 0x00000060 : 0xc1533930, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 353: [10463.062992] [ 8E] 0x00000060 : 0xc1533934, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 354: [10463.062995] [ 8F] 0x00000060 : 0xc1533938, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 355: [10463.062997] [ 90] 0x00000060 : 0xc1533940, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 356: [10463.062999] [ 91] 0x00000060 : 0xc1533944, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 357: [10463.063002] [ 92] 0x00000060 : 0xc1533948, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 358: [10463.063004] [ 93] 0x00000060 : 0xc153394c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 359: [10463.063007] [ 94] 0x00000060 : 0xc1533950, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 360: [10463.063009] [ 95] 0x00000060 : 0xc1533954, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 361: [10463.063011] [ 96] 0x00000060 : 0xc1533958, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 362: [10463.063014] [ 97] 0x00000060 : 0xc1533960, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 363: [10463.063016] [ 98] 0x00000060 : 0xc1533964, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 364: [10463.063019] [ 99] 0x00000060 : 0xc1533968, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 365: [10463.063021] [ 9A] 0x00000060 : 0xc153396c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 366: [10463.063023] [ 9B] 0x00000060 : 0xc1533970, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 367: [10463.063026] [ 9C] 0x00000060 : 0xc1533974, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 368: [10463.063028] [ 9D] 0x00000060 : 0xc1533978, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 369: [10463.063031] [ 9E] 0x00000060 : 0xc1533980, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 370: [10463.063033] [ 9F] 0x00000060 : 0xc1533984, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 371: [10463.063035] [ A0] 0x00000060 : 0xc1533988, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 372: [10463.063038] [ A1] 0x00000060 : 0xc153398c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 373: [10463.063040] [ A2] 0x00000060 : 0xc1533990, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 374: [10463.063043] [ A3] 0x00000060 : 0xc1533994, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 375: [10463.063045] [ A4] 0x00000060 : 0xc1533998, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 376: [10463.063047] [ A5] 0x00000060 : 0xc15339a0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 377: [10463.063050] [ A6] 0x00000060 : 0xc15339a4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 378: [10463.063052] [ A7] 0x00000060 : 0xc15339a8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 379: [10463.063055] [ A8] 0x00000060 : 0xc15339ac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 380: [10463.063057] [ A9] 0x00000060 : 0xc15339b0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 381: [10463.063059] [ AA] 0x00000060 : 0xc15339b4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 382: [10463.063062] [ AB] 0x00000060 : 0xc15339b8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 383: [10463.063064] [ AC] 0x00000060 : 0xc15339c0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 384: [10463.063067] [ AD] 0x00000060 : 0xc15339c4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 385: [10463.063069] [ AE] 0x00000060 : 0xc15339c8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 386: [10463.063071] [ AF] 0x00000060 : 0xc15339cc, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 387: [10463.063074] [ B0] 0x00000060 : 0xc15339d0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 388: [10463.063076] [ B1] 0x00000060 : 0xc15339d4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 389: [10463.063079] [ B2] 0x00000060 : 0xc15339d8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 390: [10463.063081] [ B3] 0x00000060 : 0xc15339e0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 391: [10463.063083] [ B4] 0x00000060 : 0xc15339e4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 392: [10463.063086] [ B5] 0x00000060 : 0xc15339e8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 393: [10463.063088] [ B6] 0x00000060 : 0xc15339ec, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 394: [10463.063091] [ B7] 0x00000060 : 0xc15339f0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 395: [10463.063093] [ B8] 0x00000060 : 0xc15339f4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 396: [10463.063095] [ B9] 0x00000060 : 0xc15339f8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 397: [10463.063098] [ BA] 0x00000060 : 0xc1533a00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 398: [10463.063100] [ BB] 0x00000060 : 0xc1533a04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 399: [10463.063103] [ BC] 0x00000060 : 0xc1533a08, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 400: [10463.063105] [ BD] 0x00000060 : 0xc1533a0c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 401: [10463.063107] [ BE] 0x00000060 : 0xc1533a10, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 402: [10463.063110] [ BF] 0x00000060 : 0xc1533a14, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 403: [10463.063112] [ C0] 0x00000060 : 0xc1533a18, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 404: [10463.063115] [ C1] 0x00000060 : 0xc1533a20, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 405: [10463.063117] [ C2] 0x00000060 : 0xc1533a24, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 406: [10463.063119] [ C3] 0x00000060 : 0xc1533a28, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 407: [10463.063122] [ C4] 0x00000060 : 0xc1533a2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 408: [10463.063124] [ C5] 0x00000060 : 0xc1533a30, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 409: [10463.063127] [ C6] 0x00000060 : 0xc1533a34, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 410: [10463.063129] [ C7] 0x00000060 : 0xc1533a38, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 411: [10463.063131] [ C8] 0x00000060 : 0xc1533a40, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 412: [10463.063134] [ C9] 0x00000060 : 0xc1533a44, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 413: [10463.063136] [ CA] 0x00000060 : 0xc1533a48, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 414: [10463.063139] [ CB] 0x00000060 : 0xc1533a4c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 415: [10463.063141] [ CC] 0x00000060 : 0xc1533a50, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 416: [10463.063143] [ CD] 0x00000060 : 0xc1533a54, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 417: [10463.063146] [ CE] 0x00000060 : 0xc1533a58, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 418: [10463.063148] [ CF] 0x00000060 : 0xc1533a60, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 419: [10463.063151] [ D0] 0x00000060 : 0xc1533a64, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 420: [10463.063153] [ D1] 0x00000060 : 0xc1533a68, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 421: [10463.063155] [ D2] 0x00000060 : 0xc1533a6c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 422: [10463.063158] [ D3] 0x00000060 : 0xc1533a70, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 423: [10463.063160] [ D4] 0x00000060 : 0xc1533a74, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 424: [10463.063163] [ D5] 0x00000060 : 0xc1533a78, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 425: [10463.063165] [ D6] 0x00000060 : 0xc1533a80, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 426: [10463.063167] [ D7] 0x00000060 : 0xc1533a84, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 427: [10463.063170] [ D8] 0x00000060 : 0xc1533a88, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 428: [10463.063172] [ D9] 0x00000060 : 0xc1533a8c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 429: [10463.063175] [ DA] 0x00000060 : 0xc1533a90, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 430: [10463.063177] [ DB] 0x00000060 : 0xc1533a94, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 431: [10463.063179] [ DC] 0x00000060 : 0xc1533a98, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 432: [10463.063182] [ DD] 0x00000060 : 0xc1533aa0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 433: [10463.063184] [ DE] 0x00000060 : 0xc1533aa4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 434: [10463.063187] [ DF] 0x00000060 : 0xc1533aa8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 435: [10463.063189] [ E0] 0x00000060 : 0xc1533aac, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 436: [10463.063192] [ E1] 0x00000060 : 0xc1533ab0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 437: [10463.063194] [ E2] 0x00000060 : 0xc1533ab4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 438: [10463.063196] [ E3] 0x00000060 : 0xc1533ab8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 439: [10463.063199] [ E4] 0x00000060 : 0xc1533ac0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 440: [10463.063201] [ E5] 0x00000060 : 0xc1533ac4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 441: [10463.063203] [ E6] 0x00000060 : 0xc1533ac8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 442: [10463.063206] [ E7] 0x00000060 : 0xc152cb40, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 443: [10463.063208] [ E8] 0x00000060 : 0xc152cb78, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 444: [10463.063211] [ E9] 0x00000060 : 0xc152cbb0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 445: [10463.063213] [ EA] 0x00000060 : 0xc152cbe8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 446: [10463.063215] [ EB] 0x00000060 : 0xc152cc20, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 447: [10463.063218] [ EC] 0x00000060 : 0xc152cc58, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 448: [10463.063220] [ ED] 0x00000060 : 0xc152cc90, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 449: [10463.063223] [ EE] 0x00000060 : 0xc152ccc8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 450: [10463.063225] [ EF] 0x00000060 : 0xc152cd38, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 451: [10463.063227] [ F0] 0x00000060 : 0xc1533af4, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 452: [10463.063230] [ F1] 0x00000060 : 0xc1533af8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 453: [10463.063232] [ F2] 0x00000060 : 0xc1533b00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 454: [10463.063235] [ F3] 0x00000060 : 0xc1533b04, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 455: [10463.063237] [ F4] 0x00000060 : 0xc152ce88, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 456: [10463.063239] [ F5] 0x00000060 : 0xc1533b0c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 457: [10463.063242] [ F6] 0x00000060 : 0xc152cde0, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 458: [10463.063244] [ F7] 0x00000060 : 0xc152cd00, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 459: [10463.063247] [ F8] 0x00000060 : 0xc152cb08, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 460: [10463.063249] [ F9] 0x00000060 : 0xc152ce50, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 461: [10463.063251] [ FA] 0x00000060 : 0xc152ce18, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 462: [10463.063254] [ FB] 0x00000060 : 0xc152ca9c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 463: [10463.063256] [ FC] 0x00000060 : 0xc152ca64, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 464: [10463.063259] [ FD] 0x00000060 : 0xc152ca2c, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 465: [10463.063261] [ FE] 0x00000060 : 0xc152cd70, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 466: [10463.063263] [ FF] 0x00000060 : 0xc152cda8, P[1] DPL[0] Type[Interrupt Gate] selector[index=000C, TI=0, RPL=0] 467: [10463.063754] ###################################################################
最新试验代码
1: #include<linux/init.h> 2: #include<linux/module.h> 3: #include<linux/list.h> 4: #include<linux/sched.h> 5: #include<linux/proc_fs.h> 6: #include<linux/mm_types.h> 7: #include<linux/fs.h> 8: #include<linux/path.h> 9: #include<linux/dcache.h> 10: #include<linux/mm.h> 11: #include<linux/mmzone.h> 12: #include<linux/vmalloc.h>13: #include<asm/desc.h>
14: #include<linux/smp.h> 15: 16: MODULE_LICENSE("GPL");
17: 18: struct tss_segment_32 {
19: u32 prev_task_link; 20: u32 esp0; 21: u32 ss0; 22: u32 esp1; 23: u32 ss1; 24: u32 esp2; 25: u32 ss2; 26: u32 cr3; 27: u32 eip; 28: u32 eflags; 29: u32 eax; 30: u32 ecx; 31: u32 edx; 32: u32 ebx; 33: u32 esp; 34: u32 ebp; 35: u32 esi; 36: u32 edi; 37: u32 es; 38: u32 cs; 39: u32 ss; 40: u32 ds; 41: u32 fs; 42: u32 gs; 43: u32 ldt_selector; 44: u16 t; 45: u16 io_map; 46: }; 47: 48: void printBinary(char* name, char* buffer, unsigned long size)
49: {50: int i;
51: 52: printk("%s\n", name);
53: for (i = 0; i < size; ++i)
54: {55: printk(" %02X", *(buffer + i));
56: if (i % 16 == 0)
57: {58: printk("\n");
59: } 60: }61: if (size % 16 != 0)
62: {63: printk("\n");
64: } 65: } 66: 67: void printRawData(unsigned long size, const u_char* data)
68: {69: if (size == 0)
70: {71: return;
72: } 73: 74: printk("Memory at 0x%08x\n", (u32)data);
75: unsigned long i = 0;
76: for (i=0;i<16;i++)
77: {78: printk("%4X", i);
79: }80: printk("\n");
81: for (i=0;i<16;i++)
82: {83: printk("%4s", "__");
84: } 85: 86: char lineSummary[17] = {0,};
87: unsigned long pos = 0;
88: for (i=0;i<size;i++)
89: {90: if ((pos = i % 16) == 0)
91: {92: if (i != 0)
93: {94: printk(" ---- %s\n", lineSummary);
95: memset(lineSummary, 0, 17); 96: }97: else
98: {99: printk("\n");
100: } 101: } 102: 103: printk(" %02X", *(data + i));
104: 105: if (*(data + i) >= 0x20 && *(data + i) <= 0x7E)
106: { 107: lineSummary[pos] = *(data + i); 108: }109: else
110: {111: lineSummary[pos] = ' ';
112: } 113: } 114: 115: if (size % 16 != 0)
116: {117: for (i=0;i<16 - (size%16);i++)
118: {119: printk(" ");
120: } 121: } 122: 123: printk(" ---- %s\n", lineSummary);
124: printk("\n");
125: } 126: 127: void printBuddySystemInfo(struct free_area* free_area)
128: {129: int j;
130: struct free_area* pfreearea = free_area;
131: if (pfreearea == NULL)
132: return;
133: for (j = 0; j < MAX_ORDER; ++j)
134: {135: //printBinary("free_area", (char*)(pfreearea + j), sizeof(struct free_area));
136: // printRawData(sizeof(struct free_area), (char*)(pfreearea + j));
137: printk("%5d", (pfreearea + j)->nr_free);
138: }139: printk("\n");
140: } 141: 142: void printPagesetInfo(struct per_cpu_pageset *pageset)
143: {144: printk("pageset: 0x%08x\n", pageset);
145: printRawData(sizeof(*pageset), pageset);
146: // struct per_cpu_pages pages = pageset->pcp;
147: // printk("Pageset Info:\n");
148: 149: // printk(" count:\t\t%d\n", pages.count);
150: // printk(" high:\t\t%d\n", pages.high);
151: // printk(" batch:\t\t%d\n", pages.batch);
152: } 153: 154: int analyzeUMANode()
155: {156: int i,j;
157: unsigned long node_present_pages;
158: unsigned long node_spanned_pages;
159: struct pglist_data* node_0;
160: 161: struct zone* pzone;
162: unsigned long start_pfn;
163: unsigned long present_pages;
164: unsigned long spanned_pages;
165: 166: // struct page* first_page;
167: 168: 169: printk("###################################################################\n");
170: 171: // printk(KERN_INFO "/proc/%s created\n", PROCFS_NAME);
172: node_0 = NODE_DATA(0);173: printk("node_0 at 0x%08x\n", node_0);
174: if (node_0 == NULL)
175: return 0;
176: 177: node_present_pages = node_0->node_present_pages; 178: node_spanned_pages = node_0->node_spanned_pages;179: printk("present pages: %d\n", node_present_pages);
180: printk("spanned pages: %d\n", node_spanned_pages);
181: 182: for (i = 0; i < MAX_NR_ZONES; ++i)
183: { 184: pzone = &node_0->node_zones[i];185: if (pzone == NULL)
186: continue;
187: printk("Zone %d Name: %s\n", i, pzone->name);
188: start_pfn = pzone->zone_start_pfn;189: printk("start_pfn : %d\n", start_pfn);
190: present_pages = pzone->present_pages;191: printk("present_pages : %d\n", present_pages);
192: spanned_pages = pzone->spanned_pages;193: printk("spanned_pages : %d\n", spanned_pages);
194: printk("%8d MB - %8d MB\n", start_pfn * PAGE_SIZE / 1024 / 1024, (start_pfn + spanned_pages) * PAGE_SIZE / 1024 / 1024);
195: 196: printBuddySystemInfo(&pzone->free_area); 197: printPagesetInfo(pzone->pageset); 198: 199: }200: // first_page = mem_map;
201: // int i;
202: // for (i = 0; i < node_present_pages; ++i)
203: // {
204: // unsigned long bLocked = (first_page + i)->flags == PG_locked;
205: // if (!bLocked)
206: // {
207: // // printk("Page->virtual : 0x%08x, flags = 0x%08x\n", page_address(first_page + i), (first_page + i)->flags);
208: // }
209: // }
210: return 0;
211: } 212: 213: int analyzeProcesses()
214: {215: struct task_struct *pos;
216: struct list_head *current_head;
217: int count=0;
218: 219: struct vm_area_struct* vma;
220: bool bFirst;
221: struct file* vm_file;
222: char szBuff[1024] = {0};
223: char szTmp[1024] = {0};
224: 225: struct dentry* vm_dentry;
226: struct dentry* parent;
227: 228: unsigned long vm_flags;
229: 230: printk("Traversal module is working..\n");
231: // printk("Parameters:\n");
232: // printk("%20s\t0x%08x\n", "buffer", buffer);
233: // printk("%20s\t0x%08x\n", "buffer_pos", buffer_pos);
234: // printk("%20s\t0x%08x\n", "offset", offset);
235: // printk("%20s\t0x%08x\n", "buffer_len", buffer_len);
236: // printk("%20s\t0x%08x\n", "eof", eof);
237: // printk("%20s\t0x%08x\n", "data", data);
238: 239: current_head=&(current->tasks);240: if (current_head == NULL)
241: return 0;
242: list_for_each_entry(pos,current_head,tasks) 243: { 244: count++;245: if (strcmp(pos->comm, "gnome-terminal") != 0)
246: {247: continue;
248: }249: // ret += sprintf(buffer+ret, "[process %d]: %s\'s pid is %d\n",count,pos->comm,pos->pid);
250: // ret += sprintf(buffer + ret, "%40s:\n", pos->comm);
251: // ret += sprintf(buffer + ret, "\t%20s:\t%d\n", "pid", pos->pid);
252: // ret += sprintf(buffer + ret, "\t%20s:\t%d\n", "state", pos->state);
253: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "exec_start", pos->se.exec_start);
254: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "sum_exec_runtime", pos->se.sum_exec_runtime);
255: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "vruntime", pos->se.vruntime);
256: // ret += sprintf(buffer + ret, "\t%20s:\t%ll\n", "prev_sum_exec_runtime", pos->se.prev_sum_exec_runtime);
257: // printk("%40s:\n", pos->comm);
258: // printk("\t%20s:\t%d\n", "pid", pos->pid);
259: // printk("\t%20s:\t%d\n", "state", pos->state);
260: // printk("\t%20s:\t0x%016llx\n", "exec_start", pos->se.exec_start);
261: // printk("\t%20s:\t0x%016llx\n", "sum_exec_runtime", pos->se.sum_exec_runtime);
262: // printk("\t%20s:\t0x%016llx\n", "vruntime", pos->se.vruntime);
263: // printk("\t%20s:\t0x%016llx\n", "prev_sum_exec_runtime", pos->se.prev_sum_exec_runtime);
264: if (pos == NULL)
265: continue;
266: if (pos->mm != NULL && pos->mm->mmap != NULL)
267: {268: // printk("[process %d]: mmap is 0x%08x\n", pos->pid, pos->mm->mmap);
269: vma = pos->mm->mmap; 270: bFirst = true;271: while (vma != NULL && (vma != pos->mm->mmap || bFirst))
272: { 273: vm_file = vma->vm_file;274: if (vm_file != NULL)
275: {276: printk("\t0x%08x - 0x%08x\n", vma->vm_start, vma->vm_end);
277: 278: vm_dentry = vm_file->f_dentry;279: if (vm_dentry != NULL)
280: { 281: parent = vm_dentry;282: while (parent != NULL && strcmp(parent->d_name.name, "/") != 0)
283: {284: //printk("\t%20s:\t%s\n", "name", parent->d_name.name);
285: strcpy(szTmp, szBuff); 286: memset(szBuff, 0, 1024);287: sprintf(szBuff, "%s/%s", parent->d_name.name, szTmp);
288: parent = parent->d_parent; 289: } 290: szBuff[strlen(szBuff) - 1] = 0;291: printk("\t%20s:\t/%s\n", "name", szBuff);
292: } 293: vm_flags = vma->vm_flags;294: printk("%d\n", vm_flags);
295: // memset(szBuff, 0, 1024);
296: // if (vm_flags & VM_READ != 0)
297: // {
298: // strcpy(szTmp, szBuff);
299: // memset(szBuff, 0, 1024);
300: // sprintf(szBuff, "%s VM_READ", szTmp);
301: // }
302: // if (vm_flags & VM_WRITE != 0)
303: // {
304: // strcpy(szTmp, szBuff);
305: // memset(szBuff, 0, 1024);
306: // sprintf(szBuff, "%s VM_WRITE", szTmp);
307: // }
308: // if (vm_flags & VM_EXEC != 0)
309: // {
310: // strcpy(szTmp, szBuff);
311: // memset(szBuff, 0, 1024);
312: // sprintf(szBuff, "%s VM_EXEC", szTmp);
313: // }
314: // if (vm_flags & VM_SHARED != 0)
315: // {
316: // strcpy(szTmp, szBuff);
317: // memset(szBuff, 0, 1024);
318: // sprintf(szBuff, "%s VM_SHARED", szTmp);
319: // }
320: // printk("\t%20s:\t%s\n", "FLAGS", szBuff);
321: printk("\n");
322: } 323: bFirst = false; 324: vma = vma->vm_next; 325: } 326: } 327: } 328: 329: return 0; /* everything is ok */
330: } 331: 332: void dumpTSS(struct tss_segment_32* tss)
333: {334: printk("TSS:\n");
335: printk("\t%16s : 0x%08X\n", "prev_task_link", tss->prev_task_link);
336: printk("\t%16s : 0x%08X\n", "esp0",tss->esp0);
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);
338: printk("\t%16s : 0x%08X\n", "esp1",tss->esp1);
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);
340: printk("\t%16s : 0x%08X\n", "esp2",tss->esp2);
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);
342: printk("\t%16s : 0x%08X\n", "cr3",tss->cr3);
343: printk("\t%16s : 0x%08X\n", "eip",tss->eip);
344: printk("\t%16s : 0x%08X\n", "eflags",tss->eflags);
345: printk("\t%16s : 0x%08X\n", "eax",tss->eax);
346: printk("\t%16s : 0x%08X\n", "ecx",tss->ecx);
347: printk("\t%16s : 0x%08X\n", "edx",tss->edx);
348: printk("\t%16s : 0x%08X\n", "ebx",tss->ebx);
349: printk("\t%16s : 0x%08X\n", "esp",tss->esp);
350: printk("\t%16s : 0x%08X\n", "ebp",tss->ebp);
351: printk("\t%16s : 0x%08X\n", "esi",tss->esi);
352: printk("\t%16s : 0x%08X\n", "edi",tss->edi);
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);
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);
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);
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);
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);
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);
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);
360: printk("\t%16s : 0x%04X\n", "t",tss->t);
361: printk("\t%16s : 0x%04X\n", "io_map",tss->io_map);
362: printRawData(0x40, tss + tss->io_map);363: printk("\n");
364: } 365: 366: void analyzeGDTEntry(char* buffer)
367: { 368: u32 limit; 369: u32 base; 370: u8 type; 371: u8 dpl; 372: u8 granularity; 373: u8 systemFlag; 374: u8 present; 375: u8 dbFlag; 376: 377: granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7; 378: dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6; 379: 380: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7; 381: systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4; 382: 383: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5; 384: type = ((*(u8*)(buffer + 5)) & 0x0F); 385: 386: limit = *(u16*)buffer; 387: limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16; 388: 389: if (granularity == 1)
390: { 391: limit = ((limit + 1) << 12) - 1; 392: } 393: 394: base = 0; 395: base += *(u16*)(buffer + 2); 396: base += (*(u8*)(buffer + 4)) << 16; 397: base += (*(u8*)(buffer + 7)) << 24; 398: 399: if (limit == 0)
400: {401: printk("[null]\n");
402: }403: else
404: {405: printk("0x%08x : 0x%08x, ", base, base + limit);
406: printk("G[%d] ", granularity);
407: printk("D/B[%d] ", dbFlag);
408: printk("P[%d] ", present);
409: printk("DPL[%d] ", dpl);
410: printk("S[%d] ", systemFlag);
411: printk("Type[%2d] ", type);
412: if (systemFlag == 1)
413: {414: if ((type & 0x08) != 0 )
415: {416: // Code
417: printk("Code[");
418: if ((type & 0x04) != 0)
419: {420: printk("Conforming ");
421: }422: if ((type & 0x02) != 0)
423: {424: printk("Read-Enable ");
425: }426: if ((type & 0x01) != 0)
427: {428: printk("Accessed ");
429: }430: printk("]");
431: }432: else
433: {434: // Data
435: printk("Data[");
436: if ((type & 0x04) != 0)
437: {438: printk("Expand-Down ");
439: }440: if ((type & 0x02) != 0)
441: {442: printk("Write-Enable ");
443: }444: if ((type & 0x01) != 0)
445: {446: printk("Accessed ");
447: }448: printk("]");
449: } 450: }451: else
452: {453: if (type == 0x02)
454: {455: printk("[LDT]");
456: }457: else if (type == 0x05)
458: {459: printk("[Task Gate]");
460: }461: else if (type == 0x09)
462: {463: printk("[32-Bit TSS(Available)]");
464: struct tss_segment_32 tss;
465: memcpy(&tss, base, sizeof(tss));
466: dumpTSS(&tss); 467: }468: else if (type == 0x0B)
469: {470: printk("[32-Bit TSS(Busy)]");
471: struct tss_segment_32 tss;
472: memcpy(&tss, base, sizeof(tss));
473: dumpTSS(&tss); 474: } 475: else if (type == 0x0C)
476: {477: printk("[32-Bit Call Gate]");
478: }479: else if (type == 0x0E)
480: {481: printk("[32-Bit Interrupt Gate]");
482: }483: else if (type == 0x0F)
484: {485: printk("[32-Bit Trap Gate]");
486: } 487: } 488: 489: printk("\n");
490: } 491: 492: 493: } 494: 495: void analyzeTLS(char* buffer)
496: { 497: u32 limit; 498: u32 base; 499: u8 type; 500: u8 dpl; 501: u8 granularity; 502: u8 systemFlag; 503: u8 present; 504: u8 dbFlag; 505: 506: granularity = ((*(u8*)(buffer + 6)) & 0x80) >> 7; 507: dbFlag = ((*(u8*)(buffer + 6)) & 0x40) >> 6; 508: 509: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7; 510: systemFlag = ((*(u8*)(buffer + 5)) & 0x10) >> 4; 511: 512: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5; 513: type = ((*(u8*)(buffer + 5)) & 0x0F); 514: 515: limit = *(u16*)buffer; 516: limit += ((*(u8*)(buffer + 6)) & 0x0F) << 16; 517: 518: if (granularity == 1)
519: { 520: limit = ((limit + 1) << 12) - 1; 521: } 522: 523: 524: 525: base = 0; 526: base += *(u16*)(buffer + 2); 527: base += (*(u8*)(buffer + 4)) << 16; 528: base += (*(u8*)(buffer + 7)) << 24; 529: 530: printk("0x%08x : 0x%08x, ", base, base + limit);
531: 532: printk("TLS:%x\n", limit);
533: printRawData(0x100, (char*)base);
534: } 535: 536: void analyzeGDT(u32 size, char* buffer)
537: {538: int i;
539: for (i = 0; i < size; i += 8)
540: {541: printk("[%4X] ", i/8);
542: analyzeGDTEntry(buffer + i); 543: } 544: 545: analyzeTLS(buffer + 6*8); 546: } 547: 548: void analyzeIDTEntry(char* buffer)
549: { 550: u32 offset; 551: u32 selector; 552: u8 type; 553: u8 dpl; 554: u8 present; 555: 556: present = ((*(u8*)(buffer + 5)) & 0x80) >> 7; 557: dpl = ((*(u8*)(buffer + 5)) & 0x60) >> 5; 558: type = ((*(u8*)(buffer + 5)) & 0x1F); 559: 560: offset = *(u16*)buffer; 561: offset += (*(u16*)(buffer + 6)) << 16; 562: 563: selector = *(u16*)(buffer + 2); 564: 565: if (type == 0x0E)
566: {567: // Interrupt Gate
568: printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);
569: printk("P[%d] ", present);
570: printk("DPL[%d] ", dpl);
571: printk("Type[%16s] ", "Interrupt Gate");
572: printk("\n");
573: }574: else if (type == 0x0F)
575: {576: // Trap Gate
577: printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);
578: printk("P[%d] ", present);
579: printk("DPL[%d] ", dpl);
580: printk("Type[%16s] ", "Trap Gate");
581: printk("\n");
582: }583: else if (type == 0x05)
584: {585: // Task Gate
586: printk("0x%08x[index=%04X, TI=%d, RPL=%d] : 0x%08x, ", selector, selector >> 3, selector&0x0004, selector&0x0003, offset);
587: printk("P[%d] ", present);
588: printk("DPL[%d] ", dpl);
589: printk("Type[%16s] ", "Task Gate");
590: printk("\n");
591: }592: else
593: {594: printk("[null]\n");
595: } 596: } 597: 598: void analyzeIDT(u32 size, char* buffer)
599: {600: int i;
601: for (i = 0; i < size; i += 8)
602: {603: printk("[%4X] ", i/8);
604: analyzeIDTEntry(buffer + i); 605: } 606: } 607: 608: #define getNormalReg(reg, val) asm("movl %%"#reg",%0" : "=r" (val));
609: 610: #define dumpNormalReg(reg) {u32 val;getNormalReg(reg, val); printk("%08s:0x%08X\n", ""#reg"", val);}
611: 612: #define dumpLDT() {u32 val; asm("sldt %0" : "=r"(val)); printk("%08s:0x%08X\n", "ldt", val);}
613: #define dumpTSS() {u32 val; asm("str %0" : "=r"(val)); printk("%08s:0x%08X\n", "tss", val);}
614: 615: #define dumpGDT() {char gdt[6]; \
616: asm("sgdt %0" : "=m"(gdt)); \
617: printRawData(6, gdt); \618: printk("%08s:0x%08X(0x%04X)\n", "gdt", *(u32*)(gdt + 2), *(u16*)(gdt)); \
619: printRawData((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2))); \ 620: analyzeGDT((*(u16*)(gdt) + 1), (u_char*)(*(u32*)(gdt + 2)));} 621: 622: #define dumpIDT() {char idt[6]; \
623: asm("sidt %0" : "=m"(idt)); \
624: printRawData(6, idt); \625: printk("%08s:0x%08X(0x%04X)\n", "idt", *(u32*)(idt + 2), *(u16*)(idt)); \
626: printRawData((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2))); \ 627: analyzeIDT((*(u16*)(idt) + 1), (u_char*)(*(u32*)(idt + 2)));} 628: 629: static int pslist_init()
630: {631: // analyzeUMANode();
632: // analyzeProcesses();
633: 634: // asm("mov %%cr0, %%eax;":"=a"(eax));
635: // printk("%08s:0x%08X\n", "cr0", eax);
636: 637: printk("###################################################################\n");
638: 639: int cpu = smp_processor_id();
640: struct desc_struct *gdt = get_cpu_gdt_table(cpu);
641: printRawData(sizeof(*gdt), gdt);
642: 643: dumpNormalReg(cr0); 644: dumpNormalReg(cr2); 645: dumpNormalReg(cr3); 646: 647: dumpNormalReg(eax); 648: dumpNormalReg(ebx); 649: dumpNormalReg(ecx); 650: dumpNormalReg(edx); 651: 652: dumpNormalReg(esp); 653: dumpNormalReg(ebp); 654: 655: dumpNormalReg(esi); 656: dumpNormalReg(edi); 657: 658: dumpTSS(); 659: dumpLDT(); 660: 661: dumpGDT(); 662: dumpIDT(); 663: 664: return 0;
665: } 666: 667: static void pslist_exit()
668: {669: printk("###################################################################\n");
670: } 671: 672: 673: 674: module_init(pslist_init); 675: module_exit(pslist_exit);

浙公网安备 33010602011771号