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 <felixp@ami.com>
Cc: Andrew Fish <afish@apple.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael Kinney <michael.d.kinney@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
© 2016 - 2024 Red Hat, Inc.