Update the DSC files to improve debug of the TestFrameworkPkg and TestCasePkg.
* If -b DEBUG build, then enable DEBUG() messages on the standard error console device with messages of type DEBUG_ERROR, DEBUG_VERBOSE, DEBUG_INFO, DEBUG_WARN, and DEBUG_INIT enabled. * If -b DEBUG build, then enable ASSERT() macros and configure ASSERT() macros to generate a break point when triggered. * If -b DEBUG build, then generated mixed C/ASM output for MSFT builds to help find and fix source code that causes memcpy() and memset() instrinsics to be used. * If -b RELEASE build, then disable all DEBUG() messages and ASSERT() macros and do not generated mixed C/ASM output files. * Add NT32 define that builds the TestFrameworkPkg and TestCasePkg components so they are compatible with NT32 environment debuggers. Cc: Felix Polyudov <fel...@ami.com> Cc: Andrew Fish <af...@apple.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael Kinney <michael.d.kin...@intel.com> --- TestCasePkg/TestCasePkg.dsc | 65 +++++++++++++++++++++++++++++++++++ TestFrameworkPkg/TestFrameworkPkg.dsc | 62 +++++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) diff --git a/TestCasePkg/TestCasePkg.dsc b/TestCasePkg/TestCasePkg.dsc index c2f1832ae..e7e32d4e0 100644 --- a/TestCasePkg/TestCasePkg.dsc +++ b/TestCasePkg/TestCasePkg.dsc @@ -24,6 +24,18 @@ SKUID_IDENTIFIER = DEFAULT POSTBUILD = TestCasePkg/GenFramework.cmd + # + # Platform On/Off features are defined here + # + DEFINE LOGGING = FALSE + DEFINE SOURCE_DEBUG_ENABLE = FALSE + DEFINE NT32 = FALSE + + !if $(TARGET) == "DEBUG" + DEFINE LOGGING = TRUE + DEFINE SOURCE_DEBUG_ENABLE = TRUE + !endif + [LibraryClasses] UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf @@ -39,11 +51,64 @@ BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf +!if $(LOGGING) DebugLib|MdePkg/Library/UefiDebugLibStdErr/UefiDebugLibStdErr.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf PostCodeLib|MdePkg/Library/BasePostCodeLibPort80/BasePostCodeLibPort80.inf PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf EfiTestLib|TestFrameworkPkg/Library/EfiTestLib/EfiTestLib.inf +[PcdsFixedAtBuild] +!if $(LOGGING) + !if $(SOURCE_DEBUG_ENABLE) + # + # Enabled ASSERT(), DEBUG(), and DEBUG_CODE() and configure ASSERT() to + # generate a breakpoint. + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 + !else + # + # Enabled ASSERT(), DEBUG(), and DEBUG_CODE() and configure ASSERT() to + # generate a deadloop. + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x27 + !endif +!else + # + # Disable ASSERT(), DEBUG(), DEBUG_CODE(), and DEBUG_CLEAR_MEMORY() + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0 +!endif + +[PcdsPatchableInModule] +!if $(LOGGING) + # + # Enable DEBUG() messages of type DEBUG_ERROR, DEBUG_VERBOSE, DEBUG_INFO, + # DEBUG_WARN, and DEBUG_INIT + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80400043 +!endif + [Components] TestCasePkg/Timer/ArchTimerBBTest.inf + +[BuildOptions] +!if $(TARGET) == "DEBUG" + # + # Generate mixed C/ASM files for debug builds + # + MSFT:*_*_*_CC_FLAGS = /FAsc +!endif + +!if $(NT32) + # + # If -D NT32 is set on command line to build, then build all components to be + # compatible with NT32 environment debuggers. + # + DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE + NOOPT_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE + RELEASE_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 +!endif diff --git a/TestFrameworkPkg/TestFrameworkPkg.dsc b/TestFrameworkPkg/TestFrameworkPkg.dsc index 93c8886af..ebf866e39 100644 --- a/TestFrameworkPkg/TestFrameworkPkg.dsc +++ b/TestFrameworkPkg/TestFrameworkPkg.dsc @@ -24,6 +24,18 @@ SKUID_IDENTIFIER = DEFAULT POSTBUILD = TestFrameworkPkg/GenFramework.cmd + # + # Platform On/Off features are defined here + # + DEFINE LOGGING = FALSE + DEFINE SOURCE_DEBUG_ENABLE = FALSE + DEFINE NT32 = FALSE + + !if $(TARGET) == "DEBUG" + DEFINE LOGGING = TRUE + DEFINE SOURCE_DEBUG_ENABLE = TRUE + !endif + [LibraryClasses] UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf @@ -39,7 +51,11 @@ BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf +!if $(LOGGING) DebugLib|MdePkg/Library/UefiDebugLibStdErr/UefiDebugLibStdErr.inf +!else + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +!endif DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf PostCodeLib|MdePkg/Library/BasePostCodeLibPort80/BasePostCodeLibPort80.inf PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf @@ -56,6 +72,37 @@ EntsLib|TestFrameworkPkg/Library/EasLib/EntsLib.inf EfiTestLib|TestFrameworkPkg/Library/EfiTestLib/EfiTestLib.inf +[PcdsFixedAtBuild] +!if $(LOGGING) + !if $(SOURCE_DEBUG_ENABLE) + # + # Enabled ASSERT(), DEBUG(), and DEBUG_CODE() and configure ASSERT() to + # generate a breakpoint. + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x17 + !else + # + # Enabled ASSERT(), DEBUG(), and DEBUG_CODE() and configure ASSERT() to + # generate a deadloop. + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x27 + !endif +!else + # + # Disable ASSERT(), DEBUG(), DEBUG_CODE(), and DEBUG_CLEAR_MEMORY() + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0 +!endif + +[PcdsPatchableInModule] +!if $(LOGGING) + # + # Enable DEBUG() messages of type DEBUG_ERROR, DEBUG_VERBOSE, DEBUG_INFO, + # DEBUG_WARN, and DEBUG_INIT + # + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80400043 +!endif + [Components] TestFrameworkPkg/Library/EasLib/EntsLib.inf TestFrameworkPkg/Library/EfiTestLib/EfiTestLib.inf @@ -79,4 +126,19 @@ TestFrameworkPkg/PeiSctManageModule/PeiSctManageModule.inf [BuildOptions] +!if $(TARGET) == "DEBUG" + # + # Generate mixed C/ASM files for debug builds + # MSFT:*_*_*_CC_FLAGS = /FAsc +!endif + +!if $(NT32) + # + # If -D NT32 is set on command line to build, then build all components to be + # compatible with NT32 environment debuggers. + # + DEBUG_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE + NOOPT_*_*_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /BASE:0x10000 /ALIGN:4096 /FILEALIGN:4096 /SUBSYSTEM:CONSOLE + RELEASE_*_*_DLINK_FLAGS = /ALIGN:4096 /FILEALIGN:4096 +!endif -- 2.13.1.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel