mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/EbcDxe: Add comments for functions
Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Pete Batard <pete@akeo.ie> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Jiewen.yao@intel.com
This commit is contained in:
parent
532daaed0d
commit
d138a2e987
|
@ -18,6 +18,11 @@
|
|||
#include "EdbCommon.h"
|
||||
#include "EdbSupport.h"
|
||||
|
||||
/**
|
||||
|
||||
The function that displays the utility usage message.
|
||||
|
||||
**/
|
||||
VOID
|
||||
PrintUsage (
|
||||
VOID
|
||||
|
@ -38,6 +43,13 @@ PrintUsage (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The function is to show some information.
|
||||
|
||||
@param DebuggerConfiguration Point to the EFI_DEBUGGER_CONFIGURATION_PROTOCOL.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EdbShowInfo (
|
||||
EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration
|
||||
|
@ -47,6 +59,15 @@ EdbShowInfo (
|
|||
return ;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
EdbConfigBreak function.
|
||||
|
||||
@param DebuggerConfiguration Point to the EFI_DEBUGGER_CONFIGURATION_PROTOCOL.
|
||||
@param Command Point to the command.
|
||||
@param CommandArg The argument for this command.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EdbConfigBreak (
|
||||
EFI_DEBUGGER_CONFIGURATION_PROTOCOL *DebuggerConfiguration,
|
||||
|
|
|
@ -33,27 +33,69 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
#define EDB_INSTRUCTION_CONTENT_MAX_LENGTH 30
|
||||
#define EDB_INSTRUCTION_CONTENT_MAX_SIZE (EDB_INSTRUCTION_CONTENT_MAX_LENGTH * sizeof(CHAR16))
|
||||
|
||||
/**
|
||||
|
||||
Set offset for Instruction name and content.
|
||||
|
||||
@param InstructionNameOffset - Instruction name offset
|
||||
@param InstructionContentOffset - Instruction content offset
|
||||
|
||||
**/
|
||||
VOID
|
||||
EdbSetOffset (
|
||||
IN UINTN InstructionNameOffset,
|
||||
IN UINTN InstructionContentOffset
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Pre instruction string construction.
|
||||
|
||||
@return Instruction string
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EdbPreInstructionString (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Post instruction string construction.
|
||||
|
||||
@return Instruction string
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EdbPostInstructionString (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the instruction name.
|
||||
|
||||
@param Name - instruction name
|
||||
|
||||
@return Instruction name offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintInstructionName (
|
||||
IN CHAR16 *Name
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Get Sign, NaturalUnits, and ConstantUnits of the WORD data.
|
||||
|
||||
@param Data16 - WORD data
|
||||
@param NaturalUnits - Natural Units of the WORD
|
||||
@param ConstantUnits - Constant Units of the WORD
|
||||
|
||||
@return Sign value of WORD
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EdbGetNaturalIndex16 (
|
||||
IN UINT16 Data16,
|
||||
|
@ -61,6 +103,17 @@ EdbGetNaturalIndex16 (
|
|||
OUT UINTN *ConstantUnits
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Get Sign, NaturalUnits, and ConstantUnits of the DWORD data.
|
||||
|
||||
@param Data32 - DWORD data
|
||||
@param NaturalUnits - Natural Units of the DWORD
|
||||
@param ConstantUnits - Constant Units of the DWORD
|
||||
|
||||
@return Sign value of DWORD
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EdbGetNaturalIndex32 (
|
||||
IN UINT32 Data32,
|
||||
|
@ -68,6 +121,17 @@ EdbGetNaturalIndex32 (
|
|||
OUT UINTN *ConstantUnits
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Get Sign, NaturalUnits, and ConstantUnits of the QWORD data.
|
||||
|
||||
@param Data64 - QWORD data
|
||||
@param NaturalUnits - Natural Units of the QWORD
|
||||
@param ConstantUnits - Constant Units of the QWORD
|
||||
|
||||
@return Sign value of QWORD
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EdbGetNaturalIndex64 (
|
||||
IN UINT64 Data64,
|
||||
|
@ -75,41 +139,115 @@ EdbGetNaturalIndex64 (
|
|||
OUT UINT64 *ConstantUnits
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical WORD raw index data to instruction content.
|
||||
|
||||
@param Data16 - WORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintRawIndexData16 (
|
||||
IN UINT16 Data16
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical DWORD raw index data to instruction content.
|
||||
|
||||
@param Data32 - DWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintRawIndexData32 (
|
||||
IN UINT32 Data32
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical QWORD raw index data to instruction content.
|
||||
|
||||
@param Data64 - QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintRawIndexData64 (
|
||||
IN UINT64 Data64
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print register 1 in operands.
|
||||
|
||||
@param Operands - instruction operands
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintRegister1 (
|
||||
IN UINT8 Operands
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print register 2 in operands.
|
||||
|
||||
@param Operands - instruction operands
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintRegister2 (
|
||||
IN UINT8 Operands
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print dedicated register 1 in operands.
|
||||
|
||||
@param Operands - instruction operands
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintDedicatedRegister1 (
|
||||
IN UINT8 Operands
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print dedicated register 2 in operands.
|
||||
|
||||
@param Operands - instruction operands
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintDedicatedRegister2 (
|
||||
IN UINT8 Operands
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical UINTN index data to instruction content.
|
||||
|
||||
@param Sign - Signed bit of UINTN data
|
||||
@param NaturalUnits - natural units of UINTN data
|
||||
@param ConstantUnits - natural units of UINTN data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintIndexData (
|
||||
IN BOOLEAN Sign,
|
||||
|
@ -117,6 +255,17 @@ EdbPrintIndexData (
|
|||
IN UINTN ConstantUnits
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical QWORD index data to instruction content.
|
||||
|
||||
@param Sign - Signed bit of QWORD data
|
||||
@param NaturalUnits - natural units of QWORD data
|
||||
@param ConstantUnits - natural units of QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintIndexData64 (
|
||||
IN BOOLEAN Sign,
|
||||
|
@ -124,108 +273,297 @@ EdbPrintIndexData64 (
|
|||
IN UINT64 ConstantUnits
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical BYTE immediate data to instruction content.
|
||||
|
||||
@param Data - BYTE data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintImmData8 (
|
||||
IN UINT8 Data
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical WORD immediate data to instruction content.
|
||||
|
||||
@param Data - WORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintImmData16 (
|
||||
IN UINT16 Data
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical DWORD immediate data to instruction content.
|
||||
|
||||
@param Data - DWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintImmData32 (
|
||||
IN UINT32 Data
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical QWORD immediate data to instruction content.
|
||||
|
||||
@param Data - QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintImmData64 (
|
||||
IN UINT64 Data
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal UINTN immediate data to instruction content.
|
||||
|
||||
@param Data - UINTN data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintImmDatan (
|
||||
IN UINTN Data
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal QWORD immediate data to instruction content.
|
||||
|
||||
@param Data64 - QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintImmData64n (
|
||||
IN UINT64 Data64
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical BYTE to instruction content.
|
||||
|
||||
@param Data8 - BYTE data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData8 (
|
||||
IN UINT8 Data8
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical WORD to instruction content.
|
||||
|
||||
@param Data16 - WORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData16 (
|
||||
IN UINT16 Data16
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical DWORD to instruction content.
|
||||
|
||||
@param Data32 - DWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData32 (
|
||||
IN UINT32 Data32
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the hexical QWORD to instruction content.
|
||||
|
||||
@param Data64 - QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData64 (
|
||||
IN UINT64 Data64
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal unsigned UINTN to instruction content.
|
||||
|
||||
@param Data - unsigned UINTN data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintDatan (
|
||||
IN UINTN Data
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal unsigned QWORD to instruction content.
|
||||
|
||||
@param Data64 - unsigned QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData64n (
|
||||
IN UINT64 Data64
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal signed BYTE to instruction content.
|
||||
|
||||
@param Data8 - signed BYTE data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData8s (
|
||||
IN UINT8 Data8
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal signed WORD to instruction content.
|
||||
|
||||
@param Data16 - signed WORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData16s (
|
||||
IN UINT16 Data16
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal signed DWORD to instruction content.
|
||||
|
||||
@param Data32 - signed DWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData32s (
|
||||
IN UINT32 Data32
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the decimal signed QWORD to instruction content.
|
||||
|
||||
@param Data64 - signed QWORD data
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintData64s (
|
||||
IN UINT64 Data64
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the comma to instruction content.
|
||||
|
||||
@return Instruction content offset
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintComma (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the symbol string according to address, then print it.
|
||||
|
||||
@param Address - instruction address
|
||||
|
||||
@retval 1 - symbol string is found and printed
|
||||
@retval 0 - symbol string not found
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbFindAndPrintSymbol (
|
||||
IN UINTN Address
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the EBC byte code.
|
||||
|
||||
@param InstructionAddress - instruction address
|
||||
@param InstructionNumber - instruction number
|
||||
|
||||
**/
|
||||
VOID
|
||||
EdbPrintRaw (
|
||||
IN EFI_PHYSICAL_ADDRESS InstructionAddress,
|
||||
IN UINTN InstructionNumber
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print the EBC asm code.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param SystemContext - EBC system context.
|
||||
|
||||
@retval EFI_SUCCESS - show disasm successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbShowDisasm (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
IN EFI_SYSTEM_CONTEXT SystemContext
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Get register value accroding to the system context, and register index.
|
||||
|
||||
@param SystemContext - EBC system context.
|
||||
@param Index - EBC register index
|
||||
|
||||
@return register value
|
||||
|
||||
**/
|
||||
UINT64
|
||||
GetRegisterValue (
|
||||
IN EFI_SYSTEM_CONTEXT SystemContext,
|
||||
|
|
|
@ -278,6 +278,14 @@ EbcDebuggerPushStepEntry (
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Notify the callback function when an event is triggered.
|
||||
|
||||
@param Event Indicates the event that invoke this function.
|
||||
@param Context Indicates the calling context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
EbcDebuggerBreakEventFunc (
|
||||
|
@ -467,7 +475,6 @@ EbcDebuggerHookUnload (
|
|||
@param Handle - The EbcImage handle.
|
||||
|
||||
**/
|
||||
|
||||
VOID
|
||||
EbcDebuggerHookEbcUnloadImage (
|
||||
IN EFI_HANDLE Handle
|
||||
|
|
|
@ -25,36 +25,83 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#define EFI_DEBUG_MAX_PRINT_BUFFER (80 * 4)
|
||||
|
||||
/**
|
||||
|
||||
Convert hex string to uint.
|
||||
|
||||
@param Str - The string
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
Xtoi (
|
||||
CHAR16 *Str
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Convert hex string to uint.
|
||||
|
||||
@param Str - The string
|
||||
|
||||
**/
|
||||
UINT64
|
||||
EFIAPI
|
||||
LXtoi (
|
||||
CHAR16 *Str
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Convert hex string to uint.
|
||||
|
||||
@param Str - The string
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
Atoi (
|
||||
CHAR16 *Str
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Convert hex string to uint.
|
||||
|
||||
@param Str - The string
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
AsciiXtoi (
|
||||
CHAR8 *Str
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Convert hex string to uint.
|
||||
|
||||
@param Str - The string
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
AsciiAtoi (
|
||||
CHAR8 *Str
|
||||
);
|
||||
|
||||
/**
|
||||
Compare the Unicode and Ascii string pointed by String to the string pointed by String2.
|
||||
|
||||
@param String - Unicode String to process
|
||||
|
||||
@param String2 - Ascii string to process
|
||||
|
||||
@return Return a positive integer if String is lexicall greater than String2; Zero if
|
||||
the two strings are identical; and a negative interger if String is lexically
|
||||
less than String2.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
StrCmpUnicodeAndAscii (
|
||||
|
@ -62,6 +109,18 @@ StrCmpUnicodeAndAscii (
|
|||
IN CHAR8 *String2
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Compare the Unicode string pointed by String to the string pointed by String2.
|
||||
|
||||
@param String - Unicode String to process
|
||||
@param String2 - Unicode string to process
|
||||
|
||||
@return Return a positive integer if String is lexically greater than String2; Zero if
|
||||
the two strings are identical; and a negative integer if String is lexically
|
||||
less than String2.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
StriCmp (
|
||||
|
@ -69,6 +128,18 @@ StriCmp (
|
|||
IN CHAR16 *String2
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Compare the Unicode and Ascii string pointed by String to the string pointed by String2.
|
||||
|
||||
@param String - Unicode String to process
|
||||
@param String2 - Ascii string to process
|
||||
|
||||
@return Return a positive integer if String is lexically greater than String2; Zero if
|
||||
the two strings are identical; and a negative integer if String is lexically
|
||||
less than String2.
|
||||
|
||||
**/
|
||||
INTN
|
||||
EFIAPI
|
||||
StriCmpUnicodeAndAscii (
|
||||
|
@ -76,6 +147,14 @@ StriCmpUnicodeAndAscii (
|
|||
IN CHAR8 *String2
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Verify if the string is end with the sub string.
|
||||
|
||||
@param Str - The string where to search the sub string
|
||||
@param SubStr - The substring.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
StrEndWith (
|
||||
|
@ -83,12 +162,26 @@ StrEndWith (
|
|||
IN CHAR16 *SubStr
|
||||
);
|
||||
|
||||
/**
|
||||
Duplicate a string.
|
||||
|
||||
@param Src The string to be duplicated.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrDuplicate (
|
||||
IN CHAR16 *Src
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNewTokenLine (
|
||||
|
@ -96,12 +189,27 @@ StrGetNewTokenLine (
|
|||
IN CHAR16 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNextTokenLine (
|
||||
IN CHAR16 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNewTokenField (
|
||||
|
@ -109,12 +217,27 @@ StrGetNewTokenField (
|
|||
IN CHAR16 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNextTokenField (
|
||||
IN CHAR16 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Patch a character to the end of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForStrTokenAfter (
|
||||
|
@ -122,6 +245,13 @@ PatchForStrTokenAfter (
|
|||
IN CHAR16 Patch
|
||||
);
|
||||
|
||||
/**
|
||||
Patch a character at the beginning of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForStrTokenBefore (
|
||||
|
@ -129,6 +259,14 @@ PatchForStrTokenBefore (
|
|||
IN CHAR16 Patch
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNewTokenLine (
|
||||
|
@ -136,12 +274,27 @@ AsciiStrGetNewTokenLine (
|
|||
IN CHAR8 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNextTokenLine (
|
||||
IN CHAR8 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNewTokenField (
|
||||
|
@ -149,12 +302,27 @@ AsciiStrGetNewTokenField (
|
|||
IN CHAR8 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNextTokenField (
|
||||
IN CHAR8 *CharSet
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Patch a character to the end of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForAsciiStrTokenAfter (
|
||||
|
@ -162,6 +330,13 @@ PatchForAsciiStrTokenAfter (
|
|||
IN CHAR8 Patch
|
||||
);
|
||||
|
||||
/**
|
||||
Patch a character at the beginning of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForAsciiStrTokenBefore (
|
||||
|
@ -170,7 +345,14 @@ PatchForAsciiStrTokenBefore (
|
|||
);
|
||||
|
||||
/**
|
||||
Shell Library.
|
||||
|
||||
Shell Library.
|
||||
Get user input.
|
||||
|
||||
@param Prompt The prompt string.
|
||||
@param InStr Point to the input string.
|
||||
@param StrLen The max length of string user can input.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
|
@ -180,12 +362,25 @@ Input (
|
|||
IN UINTN StrLen
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
SetPageBreak.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
SetPageBreak (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Print a Unicode string to the output device.
|
||||
|
||||
@param Format A Null-terminated Unicode format string.
|
||||
@param ... The variable argument list that contains pointers to Null-
|
||||
terminated Unicode strings to be printed
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EDBPrint (
|
||||
|
@ -193,6 +388,17 @@ EDBPrint (
|
|||
...
|
||||
);
|
||||
|
||||
/**
|
||||
Print a Unicode string to the output buffer.
|
||||
|
||||
@param Buffer A pointer to the output buffer for the produced Null-terminated
|
||||
Unicode string.
|
||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||
@param Format A Null-terminated Unicode format string.
|
||||
@param ... The variable argument list that contains pointers to Null-
|
||||
terminated Unicode strings to be printed
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EDBSPrint (
|
||||
|
@ -202,6 +408,18 @@ EDBSPrint (
|
|||
...
|
||||
);
|
||||
|
||||
/**
|
||||
Print a Unicode string to the output buffer with specified offset..
|
||||
|
||||
@param Buffer A pointer to the output buffer for the produced Null-terminated
|
||||
Unicode string.
|
||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||
@param Offset The offset of the buffer.
|
||||
@param Format A Null-terminated Unicode format string.
|
||||
@param ... The variable argument list that contains pointers to Null-
|
||||
terminated Unicode strings to be printed
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EDBSPrintWithOffset (
|
||||
|
@ -212,6 +430,25 @@ EDBSPrintWithOffset (
|
|||
...
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Read a file.
|
||||
If ScanFs is FLASE, it will use DebuggerPrivate->Vol as default Fs.
|
||||
If ScanFs is TRUE, it will scan all FS and check the file.
|
||||
If there is only one file match the name, it will be read.
|
||||
If there is more than one file match the name, it will return Error.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param FileName - The file to be read.
|
||||
@param BufferSize - The file buffer size
|
||||
@param Buffer - The file buffer
|
||||
@param ScanFs - Need Scan all FS
|
||||
|
||||
@retval EFI_SUCCESS - read file successfully
|
||||
@retval EFI_NOT_FOUND - file not found
|
||||
@retval EFI_NO_MAPPING - there is duplicated files found
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ReadFileToBuffer (
|
||||
|
@ -222,6 +459,18 @@ ReadFileToBuffer (
|
|||
IN BOOLEAN ScanFs
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Get file name under this dir with index
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param DirName - The dir to be read.
|
||||
@param FileName - The file name pattern under this dir
|
||||
@param Index - The file index under this dir
|
||||
|
||||
@return File Name which match the pattern and index.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
GetFileNameUnderDir (
|
||||
|
|
|
@ -85,7 +85,6 @@ Xtoi (
|
|||
@param Str - The string
|
||||
|
||||
**/
|
||||
|
||||
UINT64
|
||||
EFIAPI
|
||||
LXtoi (
|
||||
|
@ -308,6 +307,13 @@ AsciiAtoi (
|
|||
return RetVal;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Convert the character to upper case.
|
||||
|
||||
@param Chr the character to be converted.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
CHAR16
|
||||
UnicodeToUpper (
|
||||
|
@ -317,6 +323,13 @@ UnicodeToUpper (
|
|||
return (Chr >= L'a' && Chr <= L'z') ? Chr - (L'a' - L'A') : Chr;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Convert the character to upper case.
|
||||
|
||||
@param Chr the character to be converted.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
CHAR8
|
||||
AsciiToUpper (
|
||||
|
@ -520,7 +533,6 @@ StrSpn (
|
|||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrBrk (
|
||||
|
@ -589,7 +601,6 @@ StrTokenLine (
|
|||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrTokenField (
|
||||
|
@ -621,6 +632,14 @@ StrTokenField (
|
|||
return Begin;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNewTokenLine (
|
||||
|
@ -631,6 +650,13 @@ StrGetNewTokenLine (
|
|||
return StrTokenLine (String, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNextTokenLine (
|
||||
|
@ -640,6 +666,14 @@ StrGetNextTokenLine (
|
|||
return StrTokenLine (NULL, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNewTokenField (
|
||||
|
@ -650,6 +684,13 @@ StrGetNewTokenField (
|
|||
return StrTokenField (String, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR16 *
|
||||
EFIAPI
|
||||
StrGetNextTokenField (
|
||||
|
@ -659,6 +700,14 @@ StrGetNextTokenField (
|
|||
return StrTokenField (NULL, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Patch a character to the end of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForStrTokenAfter (
|
||||
|
@ -689,6 +738,13 @@ PatchForStrTokenAfter (
|
|||
return ;
|
||||
}
|
||||
|
||||
/**
|
||||
Patch a character at the beginning of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForStrTokenBefore (
|
||||
|
@ -831,7 +887,6 @@ AsciiStrTokenLine (
|
|||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrTokenField (
|
||||
|
@ -863,6 +918,14 @@ AsciiStrTokenField (
|
|||
return Begin;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNewTokenLine (
|
||||
|
@ -873,6 +936,13 @@ AsciiStrGetNewTokenLine (
|
|||
return AsciiStrTokenLine (String, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one or more specified characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNextTokenLine (
|
||||
|
@ -882,6 +952,14 @@ AsciiStrGetNextTokenLine (
|
|||
return AsciiStrTokenLine (NULL, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param String Point to the string where to find the substring.
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNewTokenField (
|
||||
|
@ -892,6 +970,13 @@ AsciiStrGetNewTokenField (
|
|||
return AsciiStrTokenField (String, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Find the next token after one specificed characters.
|
||||
|
||||
@param CharSet Point to the string to be found.
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
EFIAPI
|
||||
AsciiStrGetNextTokenField (
|
||||
|
@ -901,6 +986,14 @@ AsciiStrGetNextTokenField (
|
|||
return AsciiStrTokenField (NULL, CharSet);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Patch a character to the end of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForAsciiStrTokenAfter (
|
||||
|
@ -931,6 +1024,13 @@ PatchForAsciiStrTokenAfter (
|
|||
return ;
|
||||
}
|
||||
|
||||
/**
|
||||
Patch a character at the beginning of a string.
|
||||
|
||||
@param Buffer The string to be patched.
|
||||
@param Patch The patch character.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PatchForAsciiStrTokenBefore (
|
||||
|
|
|
@ -14,6 +14,19 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|||
|
||||
#include "Edb.h"
|
||||
|
||||
/**
|
||||
Set the current coordinates of the cursor position.
|
||||
|
||||
@param ConOut Point to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.
|
||||
@param Column The position to set the cursor to.
|
||||
@param Row The position to set the cursor to.
|
||||
@param LineLength Length of a line.
|
||||
@param TotalRow Total row of a screen.
|
||||
@param Str Point to the string.
|
||||
@param StrPos The position of the string.
|
||||
@param Len The length of the string.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
SetCursorPosition (
|
||||
|
@ -166,6 +179,15 @@ ConMoveCursorForward (
|
|||
CHAR16 mBackupSpace[EFI_DEBUG_INPUS_BUFFER_SIZE];
|
||||
CHAR16 mInputBufferHistory[EFI_DEBUG_INPUS_BUFFER_SIZE];
|
||||
|
||||
/**
|
||||
|
||||
Get user input.
|
||||
|
||||
@param Prompt The prompt string.
|
||||
@param InStr Point to the input string.
|
||||
@param StrLength The max length of string user can input.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
Input (
|
||||
|
@ -514,6 +536,19 @@ Input (
|
|||
return ;
|
||||
}
|
||||
|
||||
/**
|
||||
Set the current coordinates of the cursor position.
|
||||
|
||||
@param ConOut Point to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.
|
||||
@param Column The position to set the cursor to.
|
||||
@param Row The position to set the cursor to.
|
||||
@param LineLength Length of a line.
|
||||
@param TotalRow Total row of a screen.
|
||||
@param Str Point to the string.
|
||||
@param StrPos The position of the string.
|
||||
@param Len The length of the string.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
SetCursorPosition (
|
||||
|
@ -551,6 +586,11 @@ SetCursorPosition (
|
|||
ConOut->SetCursorPosition (ConOut, 0, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
SetPageBreak.
|
||||
|
||||
**/
|
||||
BOOLEAN
|
||||
EFIAPI
|
||||
SetPageBreak (
|
||||
|
@ -620,6 +660,14 @@ SetPageBreak (
|
|||
return OmitPrint;
|
||||
}
|
||||
|
||||
/**
|
||||
Print a Unicode string to the output device.
|
||||
|
||||
@param Format A Null-terminated Unicode format string.
|
||||
@param ... The variable argument list that contains pointers to Null-
|
||||
terminated Unicode strings to be printed
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EDBPrint (
|
||||
|
@ -645,6 +693,17 @@ EDBPrint (
|
|||
return Return;
|
||||
}
|
||||
|
||||
/**
|
||||
Print a Unicode string to the output buffer.
|
||||
|
||||
@param Buffer A pointer to the output buffer for the produced Null-terminated
|
||||
Unicode string.
|
||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||
@param Format A Null-terminated Unicode format string.
|
||||
@param ... The variable argument list that contains pointers to Null-
|
||||
terminated Unicode strings to be printed
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EDBSPrint (
|
||||
|
@ -666,6 +725,18 @@ EDBSPrint (
|
|||
return Return;
|
||||
}
|
||||
|
||||
/**
|
||||
Print a Unicode string to the output buffer with specified offset..
|
||||
|
||||
@param Buffer A pointer to the output buffer for the produced Null-terminated
|
||||
Unicode string.
|
||||
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
|
||||
@param Offset The offset of the buffer.
|
||||
@param Format A Null-terminated Unicode format string.
|
||||
@param ... The variable argument list that contains pointers to Null-
|
||||
terminated Unicode strings to be printed
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EFIAPI
|
||||
EDBSPrintWithOffset (
|
||||
|
|
|
@ -39,6 +39,18 @@ typedef enum {
|
|||
EdbEbcImageRvaSearchTypeMax,
|
||||
} EDB_EBC_IMAGE_RVA_SEARCH_TYPE;
|
||||
|
||||
/**
|
||||
|
||||
Find symbol by address.
|
||||
|
||||
@param Address - Symbol address
|
||||
@param Type - Search type
|
||||
@param RetObject - Symbol object
|
||||
@param RetEntry - Symbol entry
|
||||
|
||||
@return Nearest symbol address
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EbdFindSymbolAddress (
|
||||
IN UINTN Address,
|
||||
|
@ -47,6 +59,18 @@ EbdFindSymbolAddress (
|
|||
OUT EFI_DEBUGGER_SYMBOL_ENTRY **Entry
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Load symbol file by name.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param FileName - Symbol file name
|
||||
@param BufferSize - Symbol file buffer size
|
||||
@param Buffer - Symbol file buffer
|
||||
|
||||
@retval EFI_SUCCESS - load symbol successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbLoadSymbol (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
|
@ -55,12 +79,34 @@ EdbLoadSymbol (
|
|||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Unload symbol file by name.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param FileName - Symbol file name
|
||||
|
||||
@retval EFI_SUCCESS - unload symbol successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbUnloadSymbol (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
IN CHAR16 *FileName
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Patch symbol RVA.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param FileName - Symbol file name
|
||||
@param SearchType - Search type for Object
|
||||
|
||||
@retval EFI_SUCCESS - Patch symbol RVA successfully
|
||||
@retval EFI_NOT_FOUND - Symbol RVA base not found
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbPatchSymbolRVA (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
|
@ -68,6 +114,19 @@ EdbPatchSymbolRVA (
|
|||
IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Load code.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param MapFileName - Symbol file name
|
||||
@param FileName - Code file name
|
||||
@param BufferSize - Code file buffer size
|
||||
@param Buffer - Code file buffer
|
||||
|
||||
@retval EFI_SUCCESS - Code loaded successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbLoadCode (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
|
@ -77,6 +136,18 @@ EdbLoadCode (
|
|||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Unload code.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param MapFileName - Symbol file name
|
||||
@param FileName - Code file name
|
||||
@param Buffer - Code file buffer
|
||||
|
||||
@retval EFI_SUCCESS - Code unloaded successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbUnloadCode (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
|
@ -85,6 +156,19 @@ EdbUnloadCode (
|
|||
OUT VOID **Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Add code buffer.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param MapFileName - Symbol file name
|
||||
@param CodeFileName - Code file name
|
||||
@param SourceBufferSize- Code buffer size
|
||||
@param SourceBuffer - Code buffer
|
||||
|
||||
@retval EFI_SUCCESS - CodeBuffer added successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbAddCodeBuffer (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
|
@ -94,6 +178,18 @@ EdbAddCodeBuffer (
|
|||
IN VOID *SourceBuffer
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Delete code buffer.
|
||||
|
||||
@param DebuggerPrivate - EBC Debugger private data structure
|
||||
@param MapFileName - Symbol file name
|
||||
@param CodeFileName - Code file name
|
||||
@param SourceBuffer - Code buffer
|
||||
|
||||
@retval EFI_SUCCESS - CodeBuffer deleted successfully
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EdbDeleteCodeBuffer (
|
||||
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
|
||||
|
@ -102,17 +198,49 @@ EdbDeleteCodeBuffer (
|
|||
IN VOID *SourceBuffer
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Find the symbol string according to address.
|
||||
|
||||
@param Address - Symbol address
|
||||
|
||||
@return Symbol string
|
||||
|
||||
**/
|
||||
CHAR8 *
|
||||
FindSymbolStr (
|
||||
IN UINTN Address
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Print source.
|
||||
|
||||
@param Address - Instruction address
|
||||
@param IsPrint - Whether need to print
|
||||
|
||||
@retval 1 - find the source
|
||||
@retval 0 - not find the source
|
||||
|
||||
**/
|
||||
UINTN
|
||||
EdbPrintSource (
|
||||
IN UINTN Address,
|
||||
IN BOOLEAN IsPrint
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Convert a symbol to an address.
|
||||
|
||||
@param Symbol - Symbol name
|
||||
@param Address - Symbol address
|
||||
|
||||
@retval EFI_SUCCESS - symbol found and address returned.
|
||||
@retval EFI_NOT_FOUND - symbol not found
|
||||
@retval EFI_NO_MAPPING - duplicated symbol not found
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
Symboltoi (
|
||||
IN CHAR16 *Symbol,
|
||||
|
|
|
@ -18,6 +18,14 @@
|
|||
|
||||
#include "EbcDebuggerHook.h"
|
||||
|
||||
/**
|
||||
|
||||
The hook in InitializeEbcDriver.
|
||||
|
||||
@param Handle - The EbcDebugProtocol handle.
|
||||
@param EbcDebugProtocol - The EbcDebugProtocol interface.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookInit (
|
||||
IN EFI_HANDLE Handle,
|
||||
|
@ -27,6 +35,11 @@ EbcDebuggerHookInit (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in UnloadImage for EBC Interpreter.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookUnload (
|
||||
VOID
|
||||
|
@ -35,6 +48,14 @@ EbcDebuggerHookUnload (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in EbcUnloadImage.
|
||||
Currently do nothing here.
|
||||
|
||||
@param Handle The EbcImage handle.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookEbcUnloadImage (
|
||||
IN EFI_HANDLE Handle
|
||||
|
@ -43,6 +64,13 @@ EbcDebuggerHookEbcUnloadImage (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteEbcImageEntryPoint.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookExecuteEbcImageEntryPoint (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -51,6 +79,13 @@ EbcDebuggerHookExecuteEbcImageEntryPoint (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteEbcImageEntryPoint.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookEbcInterpret (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -59,6 +94,12 @@ EbcDebuggerHookEbcInterpret (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
The hook in EbcExecute, before ExecuteFunction.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookExecuteStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -67,6 +108,12 @@ EbcDebuggerHookExecuteStart (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
The hook in EbcExecute, after ExecuteFunction.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookExecuteEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -75,6 +122,13 @@ EbcDebuggerHookExecuteEnd (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -83,6 +137,13 @@ EbcDebuggerHookCALLStart (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, after move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -91,6 +152,13 @@ EbcDebuggerHookCALLEnd (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, before call EbcLLCALLEX.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLEXStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -99,6 +167,13 @@ EbcDebuggerHookCALLEXStart (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, after call EbcLLCALLEX.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLEXEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -107,6 +182,13 @@ EbcDebuggerHookCALLEXEnd (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteRET, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookRETStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -115,6 +197,13 @@ EbcDebuggerHookRETStart (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteRET, after move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookRETEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -123,6 +212,13 @@ EbcDebuggerHookRETEnd (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMPStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -131,6 +227,13 @@ EbcDebuggerHookJMPStart (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP, after move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMPEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -139,6 +242,13 @@ EbcDebuggerHookJMPEnd (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP8, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMP8Start (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
@ -147,6 +257,13 @@ EbcDebuggerHookJMP8Start (
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP8, after move IP..
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMP8End (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
|
|
@ -38,96 +38,207 @@ EbcDebugSignalException (
|
|||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
//
|
||||
// Hooks in EbcInt.c
|
||||
//
|
||||
/**
|
||||
|
||||
The hook in InitializeEbcDriver.
|
||||
|
||||
@param Handle - The EbcDebugProtocol handle.
|
||||
@param EbcDebugProtocol - The EbcDebugProtocol interface.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookInit (
|
||||
IN EFI_HANDLE Handle,
|
||||
IN EFI_DEBUG_SUPPORT_PROTOCOL *EbcDebugProtocol
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in UnloadImage for EBC Interpreter.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookUnload (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in EbcUnloadImage.
|
||||
Currently do nothing here.
|
||||
|
||||
@param Handle The EbcImage handle.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookEbcUnloadImage (
|
||||
IN EFI_HANDLE Handle
|
||||
);
|
||||
|
||||
//
|
||||
// Hooks in EbcSupport.c
|
||||
//
|
||||
|
||||
/**
|
||||
|
||||
Hooks in EbcSupport.c
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookExecuteEbcImageEntryPoint (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteEbcImageEntryPoint.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookEbcInterpret (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
//
|
||||
// Hooks in EbcExecute.c
|
||||
//
|
||||
|
||||
/**
|
||||
The hook in EbcExecute, before ExecuteFunction.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookExecuteStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
The hook in EbcExecute, after ExecuteFunction.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookExecuteEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
The hook in ExecuteCALL, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, after move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, before call EbcLLCALLEX.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLEXStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteCALL, after call EbcLLCALLEX.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookCALLEXEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteRET, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookRETStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteRET, after move IP.
|
||||
It will record trace information.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookRETEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMPStart (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP, after move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMPEnd (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP8, before move IP.
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMP8Start (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
The hook in ExecuteJMP8, after move IP..
|
||||
|
||||
@param VmPtr - pointer to VM context.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EbcDebuggerHookJMP8End (
|
||||
IN VM_CONTEXT *VmPtr
|
||||
|
|
Loading…
Reference in New Issue