PeCoffExtraActionLibDebug uses the debug registers to pass module load information to the DebugAgent, then restores the old register values. However, it was missing code to restore Dr7 in the DEBUG_LOAD_IMAGE_METHOD_SOFT_INT3 case. This broke hardware breakpoints and watchpoints. It could also lose modifications the debugger made to Cr4. Restore the Dr7 and Cr4 values correctly in the DEBUG_LOAD_IMAGE_METHOD_SOFT_INT3 case, as well as the DEBUG_LOAD_IMAGE_METHOD_IO_HW_BREAKPOINT case. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Brian J. Johnson <bjohnson@sgi.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17071 6f19259b-4bc3-4df7-8a09-765794883524