mirror of https://github.com/acidanthera/audk.git
Fix more InitializeDebugAgent API change bugs. GDB stub was not turned on in example platforms.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10687 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
7c137cae5a
commit
685f8c7600
|
@ -109,7 +109,8 @@
|
|||
OmapLib|Omap35xxPkg/Library/OmapLib/OmapLib.inf
|
||||
OmapDmaLib|Omap35xxPkg/Library/OmapDmaLib/OmapDmaLib.inf
|
||||
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
|
||||
|
||||
DebugAgentTimerLib|Omap35xxPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
||||
|
||||
GdbSerialLib|Omap35xxPkg/Library/GdbSerialLib/GdbSerialLib.inf
|
||||
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
||||
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
||||
|
@ -129,6 +130,9 @@
|
|||
# 1/123 faster than Stm or Vstm version
|
||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||
|
||||
# Uncomment to turn on GDB stub in SEC.
|
||||
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
||||
|
||||
[LibraryClasses.common.PEI_CORE]
|
||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
|
||||
#include <GdbDebugAgent.h>
|
||||
#include <Library/CacheMaintenanceLib.h>
|
||||
#include <Library/PrintLib.h>
|
||||
#include <Library/ArmLib.h>
|
||||
|
||||
|
@ -597,17 +596,31 @@ GdbFPutString (
|
|||
/**
|
||||
Initialize debug agent.
|
||||
|
||||
This function is used to set up debug enviroment. It may enable interrupts.
|
||||
This function is used to set up debug environment to support source level debugging.
|
||||
If certain Debug Agent Library instance has to save some private data in the stack,
|
||||
this function must work on the mode that doesn't return to the caller, then
|
||||
the caller needs to wrap up all rest of logic after InitializeDebugAgent() into one
|
||||
function and pass it into InitializeDebugAgent(). InitializeDebugAgent() is
|
||||
responsible to invoke the passing-in function at the end of InitializeDebugAgent().
|
||||
|
||||
@param[in] InitFlag Init flag is used to decide initialize process.
|
||||
@param[in] Context Context needed according to InitFlag, it was optional.
|
||||
If the parameter Function is not NULL, Debug Agent Libary instance will invoke it by
|
||||
passing in the Context to be its parameter.
|
||||
|
||||
If Function() is NULL, Debug Agent Library instance will return after setup debug
|
||||
environment.
|
||||
|
||||
@param[in] InitFlag Init flag is used to decide the initialize process.
|
||||
@param[in] Context Context needed according to InitFlag; it was optional.
|
||||
@param[in] Function Continue function called by debug agent library; it was
|
||||
optional.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
InitializeDebugAgent (
|
||||
IN UINT32 InitFlag,
|
||||
IN VOID *Context OPTIONAL
|
||||
IN VOID *Context, OPTIONAL
|
||||
IN DEBUG_AGENT_CONTINUE Function OPTIONAL
|
||||
)
|
||||
{
|
||||
UINTN Offset;
|
||||
|
@ -653,6 +666,10 @@ InitializeDebugAgent (
|
|||
ArmEnableInterrupts ();
|
||||
}
|
||||
|
||||
if (Function != NULL) {
|
||||
Function (Context);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <Library/PrintLib.h>
|
||||
#include <Library/CacheMaintenanceLib.h>
|
||||
#include <Library/DebugAgentTimerLib.h>
|
||||
#include <Library/DebugAgentLib.h>
|
||||
|
||||
#include <IndustryStandard/PeImage.h>
|
||||
#include <Protocol/DebugSupport.h>
|
||||
|
|
|
@ -915,19 +915,37 @@ RemoveBreakPoint (
|
|||
/**
|
||||
Initialize debug agent.
|
||||
|
||||
This function is used to set up debug enviroment. It may enable interrupts.
|
||||
This function is used to set up debug environment to support source level debugging.
|
||||
If certain Debug Agent Library instance has to save some private data in the stack,
|
||||
this function must work on the mode that doesn't return to the caller, then
|
||||
the caller needs to wrap up all rest of logic after InitializeDebugAgent() into one
|
||||
function and pass it into InitializeDebugAgent(). InitializeDebugAgent() is
|
||||
responsible to invoke the passing-in function at the end of InitializeDebugAgent().
|
||||
|
||||
@param[in] InitFlag Init flag is used to decide initialize process.
|
||||
@param[in] Context Context needed according to InitFlag, it was optional.
|
||||
If the parameter Function is not NULL, Debug Agent Libary instance will invoke it by
|
||||
passing in the Context to be its parameter.
|
||||
|
||||
If Function() is NULL, Debug Agent Library instance will return after setup debug
|
||||
environment.
|
||||
|
||||
@param[in] InitFlag Init flag is used to decide the initialize process.
|
||||
@param[in] Context Context needed according to InitFlag; it was optional.
|
||||
@param[in] Function Continue function called by debug agent library; it was
|
||||
optional.
|
||||
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
InitializeDebugAgent (
|
||||
IN UINT32 InitFlag,
|
||||
IN VOID *Context OPTIONAL
|
||||
IN VOID *Context, OPTIONAL
|
||||
IN DEBUG_AGENT_CONTINUE Function OPTIONAL
|
||||
)
|
||||
{
|
||||
// BugBug: Add the code to build an GDT/IDT
|
||||
|
||||
if (Function != NULL) {
|
||||
Function (Context);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue