This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGb352e62feadd: [lldb] Make process plugins check whether a hardware breakpoint is required (authored by tatyana-krasnukha).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D84255/new/ https://reviews.llvm.org/D84255 Files: lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py Index: lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py =================================================================== --- lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py +++ lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py @@ -27,7 +27,6 @@ breakpoint = target.BreakpointCreateByLocation("main.c", 1) self.assertTrue(breakpoint.IsHardware()) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_range(self): """Test stepping when hardware breakpoints are required.""" @@ -49,7 +48,6 @@ self.assertTrue("Could not create hardware breakpoint for thread plan" in error.GetCString()) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_out(self): """Test stepping out when hardware breakpoints are required.""" @@ -70,7 +68,6 @@ self.assertTrue("Could not create hardware breakpoint for thread plan" in error.GetCString()) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_over(self): """Test stepping over when hardware breakpoints are required.""" @@ -89,7 +86,6 @@ 'error: Could not create hardware breakpoint for thread plan.' ]) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_until(self): """Test stepping until when hardware breakpoints are required.""" Index: lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp =================================================================== --- lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp +++ lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp @@ -150,6 +150,9 @@ uint32_t ProcessWindows::GetPluginVersion() { return 1; } Status ProcessWindows::EnableBreakpointSite(BreakpointSite *bp_site) { + if (bp_site->HardwareRequired()) + return Status("Hardware breakpoints are not supported."); + Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_BREAKPOINTS); LLDB_LOG(log, "bp_site = {0:x}, id={1}, addr={2:x}", bp_site, bp_site->GetID(), bp_site->GetLoadAddress()); Index: lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp =================================================================== --- lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp +++ lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp @@ -644,6 +644,9 @@ } Status ProcessKDP::EnableBreakpointSite(BreakpointSite *bp_site) { + if (bp_site->HardwareRequired()) + return Status("Hardware breakpoints are not supported."); + if (m_comm.LocalBreakpointsAreSupported()) { Status error; if (!bp_site->IsEnabled()) { Index: lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp =================================================================== --- lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp +++ lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp @@ -683,6 +683,9 @@ } Status ProcessFreeBSD::EnableBreakpointSite(BreakpointSite *bp_site) { + if (bp_site->HardwareRequired()) + return Status("Hardware breakpoints are not supported."); + return EnableSoftwareBreakpoint(bp_site); }
Index: lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py =================================================================== --- lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py +++ lldb/test/API/functionalities/breakpoint/hardware_breakpoints/require_hw_breakpoints/TestRequireHWBreakpoints.py @@ -27,7 +27,6 @@ breakpoint = target.BreakpointCreateByLocation("main.c", 1) self.assertTrue(breakpoint.IsHardware()) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_range(self): """Test stepping when hardware breakpoints are required.""" @@ -49,7 +48,6 @@ self.assertTrue("Could not create hardware breakpoint for thread plan" in error.GetCString()) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_out(self): """Test stepping out when hardware breakpoints are required.""" @@ -70,7 +68,6 @@ self.assertTrue("Could not create hardware breakpoint for thread plan" in error.GetCString()) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_over(self): """Test stepping over when hardware breakpoints are required.""" @@ -89,7 +86,6 @@ 'error: Could not create hardware breakpoint for thread plan.' ]) - @skipIfWindows @expectedFailure(supports_hw_breakpoints) def test_step_until(self): """Test stepping until when hardware breakpoints are required.""" Index: lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp =================================================================== --- lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp +++ lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp @@ -150,6 +150,9 @@ uint32_t ProcessWindows::GetPluginVersion() { return 1; } Status ProcessWindows::EnableBreakpointSite(BreakpointSite *bp_site) { + if (bp_site->HardwareRequired()) + return Status("Hardware breakpoints are not supported."); + Log *log = ProcessWindowsLog::GetLogIfAny(WINDOWS_LOG_BREAKPOINTS); LLDB_LOG(log, "bp_site = {0:x}, id={1}, addr={2:x}", bp_site, bp_site->GetID(), bp_site->GetLoadAddress()); Index: lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp =================================================================== --- lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp +++ lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp @@ -644,6 +644,9 @@ } Status ProcessKDP::EnableBreakpointSite(BreakpointSite *bp_site) { + if (bp_site->HardwareRequired()) + return Status("Hardware breakpoints are not supported."); + if (m_comm.LocalBreakpointsAreSupported()) { Status error; if (!bp_site->IsEnabled()) { Index: lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp =================================================================== --- lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp +++ lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp @@ -683,6 +683,9 @@ } Status ProcessFreeBSD::EnableBreakpointSite(BreakpointSite *bp_site) { + if (bp_site->HardwareRequired()) + return Status("Hardware breakpoints are not supported."); + return EnableSoftwareBreakpoint(bp_site); }
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits