Debugging interface independent kernel debugger code
Depends on Debugger_Write and <Debugger_Poll> to handle input and output.
Marcel Sondaar
Public Domain
| debug.asm | Debugging interface independent kernel debugger code |
| Functions | |
| Debugger_ParseHex | Converts a hex string to a numerical value Will discard whitespace, then parse any number of hex digits (ignore x) until null or space is found (success) or another character (failure) |
| Debugger_inchar | inserts a character into the command buffer |
| Pagewalk32 | Converts a linear address to the corresponding physical address, using the current value of CR3 |
| PagewalkEx32 | Converts a linear address to the corresponding physical address, using the current value of CR3 |
Converts a hex string to a numerical value Will discard whitespace, then parse any number of hex digits (ignore x) until null or space is found (success) or another character (failure)
| ESI | address of string |
| EAX | parsed number |
| ESI | next character to parse |
| CF | set for an incomplete parse |
ESI ECX
inserts a character into the command buffer
| AL | the ascii character to write |
none
unknown
Converts a linear address to the corresponding physical address, using the current value of CR3
Paging should be disabled when this function is called.
| EAX | address |
| EAX | physical address |
| EBX | physical address containing the final mapping |
| CF | set if the address was not currently mapped |
none
Converts a linear address to the corresponding physical address, using the current value of CR3
Paging should be disabled when this function is called.
| EAX | address |
| EDX | physical address of the page directory |
| EAX | physical address |
| EBX | physical address containing the final mapping |
| CF | set if the address was not currently mapped |
EDX