diff --git a/Common/MU_TIANO b/Common/MU_TIANO index c5944c10d..2cb135b37 160000 --- a/Common/MU_TIANO +++ b/Common/MU_TIANO @@ -1 +1 @@ -Subproject commit c5944c10d0c3240464a32b6b531e75d45fa88477 +Subproject commit 2cb135b37c956b3de40ac20ce1f54ea4361aa539 diff --git a/Features/CONFIG b/Features/CONFIG index 4a6d3a356..c781a93b8 160000 --- a/Features/CONFIG +++ b/Features/CONFIG @@ -1 +1 @@ -Subproject commit 4a6d3a356f87794ce332534853434ecbc6e5d84c +Subproject commit c781a93b8812ea00609dac71e2f16532a43fe044 diff --git a/Features/DEBUGGER b/Features/DEBUGGER index 08e01ab5c..efde75406 160000 --- a/Features/DEBUGGER +++ b/Features/DEBUGGER @@ -1 +1 @@ -Subproject commit 08e01ab5c51b41f8dd1aa35328c1227b8a3047ac +Subproject commit efde7540632fd985654cdd204b97595c0dcb99e3 diff --git a/Platforms/Docs/Common/debugging.md b/Platforms/Docs/Common/debugging.md index 47f6b1367..ebdc29f40 100644 --- a/Platforms/Docs/Common/debugging.md +++ b/Platforms/Docs/Common/debugging.md @@ -8,22 +8,25 @@ This document described different ways to debug on the QEMU platforms. Both Q35 and SBSA are setup to debug debugged using the MU debugger package. for more details on using this debugger, see the [FeatureDebuggerPkg Readme](https://github.com/microsoft/mu_feature_debugger/blob/main/DebuggerFeaturePkg/Readme.md). -By default the debugger is disabled, to enable you must both enable the debugger -build flag to enable the source debug device state flag and specify a serial port -TCP port. - +By default the debugger is enabled to break in on exceptions, but not to break in +on an initial breakpoint. To enable the initial breakpoint in DXE, you must pass: ``` -stuart_build -c Platforms\QemuQ35Pkg\PlatformBuild.py BLD_*_DEBUGGER_ENABLED=TRUE SERIAL_PORT=5555 --flashrom +stuart_build -c Platforms\QemuQ35Pkg\PlatformBuild.py BLD_*_DXE_DBG_BRK=TRUE --FlashRom ``` On Q35 this allows for debugging over a different port then the usual debug output because Q35 has a seperate serial port available to it. On SBSA the serial port -will be shared with the logging output. +will be shared with the logging output. As a result, on Q35, if `SERIAL_PORT=` +is not passed on the cmdline, a default serial port at 50001 will be created. On SBSA, +no default port is set because it will prevent output from occuring on stdout, which +makes even telling if an exception occurred difficult. + +Currently this will only enable the DXE debugger. The MM debugger will be added to Q35 +once it support supervised Standalone MM. -Currently this will only enable the DXE debugger. The MM debugger must be manually -enabled using the PcdForceEnableDebugger if the DebugAgent has been configured. -By default, the DXE debugger will stall for 30 seconds on the initial breakpoint -before attempting to continue execution. +When an exception occurs, the debugger will break in and wait for a debugger client to +connect. This makes Q35 and SBSA very debuggable, because they will break in on +exceptions always, meaning a reboot is not required. ## Debugging using QEMU GDB Server diff --git a/Silicon/Arm/MU_TIANO b/Silicon/Arm/MU_TIANO index 0cee429af..3ef1cb172 160000 --- a/Silicon/Arm/MU_TIANO +++ b/Silicon/Arm/MU_TIANO @@ -1 +1 @@ -Subproject commit 0cee429af9316af716e0eb882693cf35d6c08ec1 +Subproject commit 3ef1cb1729dc49ade907b3aa99ed78b2b3331dd6