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