From: Michael D Kinney <michael.d.kinney@intel.com>
To: edk2-devel@lists.01.org
Cc: Felix Polyudov <felixp@ami.com>, Andrew Fish <afish@apple.com>,
Michael Kinney <michael.d.kinney@intel.com>
Subject: [edk2-staging/edk2-test Patch V2 1/2] Test*Pkg: Update DSC files to improve debug
Date: Mon, 14 Aug 2017 20:57:17 -0700 [thread overview]
Message-ID: <20170815035718.1560-2-michael.d.kinney@intel.com> (raw)
In-Reply-To: <20170815035718.1560-1-michael.d.kinney@intel.com>
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
next prev parent reply other threads:[~2017-08-15 3:54 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-15 3:57 [edk2-staging/edk2-test Patch V2 0/2] TestFrameworkPkg/TestProfile: Fix overlapping buffer ASSERT() Michael D Kinney
2017-08-15 3:57 ` Michael D Kinney [this message]
2017-08-15 3:57 ` [edk2-staging/edk2-test Patch V2 2/2] " Michael D Kinney
2017-08-17 3:16 ` [edk2-staging/edk2-test Patch V2 0/2] " Felix Poludov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170815035718.1560-2-michael.d.kinney@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox