通过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);