summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py5
-rw-r--r--lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp6
2 files changed, 5 insertions, 6 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py b/lldb/packages/Python/lldbsuite/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
index a9a8aa31e37..5343e19ee20 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/thread/crash_during_step/TestCrashDuringStep.py
@@ -21,11 +21,6 @@ class CreateDuringStepTestCase(TestBase):
self.breakpoint = line_number('main.cpp', '// Set breakpoint here')
@expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24778")
- @expectedFailureAndroid("llvm.org/pr24497", archs=['arm', 'aarch64'])
- @expectedFailureAll(
- oslist=["linux"],
- archs=["arm"],
- bugnumber="llvm.org/pr24497")
# IO error due to breakpoint at invalid address
@expectedFailureAll(triple=re.compile('^mips'))
def test_step_inst_with(self):
diff --git a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
index 2510d27dc3b..8e2587bce0e 100644
--- a/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
+++ b/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
@@ -1361,7 +1361,11 @@ Error NativeProcessLinux::SetupSoftwareSingleStepping(
error = SetSoftwareBreakpoint(next_pc, 0);
}
- if (error.Fail())
+ // If setting the breakpoint fails because next_pc is out of
+ // the address space, ignore it and let the debugee segfault.
+ if (error.GetError() == EIO || error.GetError() == EFAULT) {
+ return Error();
+ } else if (error.Fail())
return error;
m_threads_stepping_with_breakpoint.insert({thread.GetID(), next_pc});
OpenPOWER on IntegriCloud