[HEADERS]
[reactos.git] / rosapps / applications / sysutils / utils / pice / readme.txt
1 This is some preliminary information on using PICE. I am planning to write
2 a detailed manual later.
3
4 BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA
5
6 PICE for Reactos is in early beta stage of development. It still has many bugs.
7
8 BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA-BETA
9
10
11 PICE is a kernel debugger that was ported for Reactos (the original Linux
12 project by Klaus P. Gerlicher and Goran Devic may be found here:
13 http://pice.sourceforge.net).
14
15 Installation and use:
16
17 1. PICE is loaded like a regular device driver. The only limitation - it must
18 be loaded after keyboard.sys driver. You should add:
19
20 LdrLoadAutoConfigDriver( L"pice.sys" );
21
22 in ntoskrnl/ldr/loader.c after the line loading keyboard driver.
23
24 2. You should copy pice.cfg and ntoskrnl.sym to \SystemRoot\symbols directory
25 of Reactos.
26
27 3. If you want to add symbolic information you should use loader.exe to
28 create .dbg file from the unstrippped version of exe or driver:
29 For example:
30 pice\loader\loader.exe -t ntoskrnl.nostrip.exe
31
32 After that copy .dbg file to \SystemRoot\symbols and add a line to pice.cfg:
33 \\SystemRoot\symbols\ntoskrnl.dbg.
34
35 Pice will load the symbols during boot. For large .dbg files it may take a
36 while (ntoskrnl.dbg is ~3Mb). You may find that loading time under bochs is
37 quite slow, although otherwise performance should be fine.
38
39 Key combination to break into debugger is CTRL-D.
40 You may need to press CTRL button upon return from the debugger if you get
41 "funny" symbols when you type.
42
43 List of commands:
44
45 gdt display current global descriptor table
46 idt display current interrupt descriptor table
47 x return to Reactos
48 t single step one instruction
49 vma displays VMAs
50 h list help on commands
51 page dump page directories
52 proc list all processes
53 dd display dword memory
54 db display byte memory
55 u disassemble at address
56 mod displays all modules
57 bpx set code breakpoint
58 bl list breakpoints
59 bc clear breakpoints
60 ver display pICE version and state information
61 hboot hard boot the system
62 cpu display CPU special registers
63 stack display call stack
64 . unassemble at current instruction
65 p single step over call
66 i single step into call
67 locals display local symbols
68 table display loaded symbol tables
69 file display source files in symbol table
70 sym list known symbol information
71 ? evaluate an expression (global symbols only)
72 src sets disassembly mode
73 wc change size of code window
74 wd change size of data window
75 r sets or displays registers
76 cls clear output window
77 pci show PCI devices
78 next advance EIP to next instruction
79 i3here catch INT 3s
80 layout sets keyboard layout
81 syscall displays syscall (table)
82 altkey set alternate break key
83 addr show/set address contexts
84
85 [CTRL/SHIFT/ALT] arrow up/down
86 TAB
87
88 Not implemented yet:
89
90 dpd display dword physical memory
91 code toggle code display
92 peek peek at physical memory
93 poke poke to physical memory
94 phys show all mappings for linear address
95 timers show all active timers
96
97 TODO:
98 1. Evaluation of pointers.
99 2. Virtual breakpoints
100 3. Unimplemented commands.
101 4. Video mode switching (to debug gdi applications).
102
103
104 Enjoy,
105 Eugene
106
107