27{
28 ShowMessages("!pt : enables, disables and configures Intel Processor Trace (PT).\n");
29
30 ShowMessages("syntax : \t!pt [Function (string)]\n");
31 ShowMessages("syntax : \t!pt filter [user] [kernel] [cr3 <hex>] [buffer <hex>]\n");
32 ShowMessages("\t [range <start> <end>] [stoprange <start> <end>]\n");
33
34 ShowMessages("\n");
35 ShowMessages("\t\te.g : !pt enable\n");
36 ShowMessages("\t\te.g : !pt disable\n");
37 ShowMessages("\t\te.g : !pt pause\n");
38 ShowMessages("\t\te.g : !pt resume\n");
39 ShowMessages("\t\te.g : !pt size\n");
40 ShowMessages("\t\te.g : !pt dump\n");
41 ShowMessages("\t\te.g : !pt flush\n");
42
43 ShowMessages("\n");
44 ShowMessages("\t\te.g : !pt filter user\n");
45 ShowMessages("\t\te.g : !pt filter kernel\n");
46 ShowMessages("\t\te.g : !pt filter user kernel\n");
47 ShowMessages("\t\te.g : !pt filter user cr3 0x1aabb000\n");
48 ShowMessages("\t\te.g : !pt filter user buffer 0x100000\n");
49 ShowMessages("\t\te.g : !pt filter user range 0x140001000 0x140002000\n");
50 ShowMessages("\t\te.g : !pt filter user stoprange 0x140003000 0x140004000\n");
51
52 ShowMessages("\nlist of filter options: \n");
53 ShowMessages("\t user : trace CPL > 0\n");
54 ShowMessages("\t kernel : trace CPL == 0\n");
55 ShowMessages("\t cr3 <addr> : only trace when CR3 matches <addr> (0 = no filter)\n");
56 ShowMessages("\t buffer <bytes> : per-CPU output buffer size, must be 4KB * 2^N\n");
57 ShowMessages("\t (4KB, 8KB, ... up to 128MB; default 2MB)\n");
58 ShowMessages("\t range <start> <end> : keep trace inside [start..end] (up to 4 ranges)\n");
59 ShowMessages("\t stoprange <s> <e> : stop tracing when execution enters [s..e]\n");
60 ShowMessages("\t (no option) : trace user + kernel, no CR3 / IP filter (default)\n");
61}