Skip to content

Commit f89a7fa

Browse files
authored
[lldb] Ignore registers that the debugserver fails to read (#132122)
On Mac x86-64, the debugserver reports a register ('ds' at least) but returns an error when we try to read it. Just skip storing such registers in snapshots so we won't try to restore them.
1 parent 2170d77 commit f89a7fa

File tree

3 files changed

+4
-13
lines changed

3 files changed

+4
-13
lines changed

lldb/packages/Python/lldbsuite/test/lldbreverse.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,10 @@ def capture_snapshot(self):
300300
for index in sorted(self.general_purpose_register_info.keys()):
301301
reply = self.pass_through(f"p{index:x};thread:{thread_id:x};")
302302
if reply == "" or reply[0] == "E":
303-
raise ValueError("Can't read register")
303+
# Mac debugserver tells us about registers that it won't let
304+
# us actually read. Ignore those registers.
305+
self.logger.debug(f"Failed to read register {index:x}")
306+
continue
304307
registers[index] = reply
305308
thread_snapshot = ThreadSnapshot(thread_id, registers)
306309
thread_sp = self.get_register(

lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@
1111
class TestReverseContinueBreakpoints(ReverseTestBase):
1212
@skipIfRemote
1313
@skipIf(macos_version=["<", "15.0"])
14-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
1514
def test_reverse_continue(self):
1615
self.reverse_continue_internal(async_mode=False)
1716

1817
@skipIfRemote
1918
@skipIf(macos_version=["<", "15.0"])
20-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
2119
def test_reverse_continue_async(self):
2220
self.reverse_continue_internal(async_mode=True)
2321

@@ -47,13 +45,11 @@ def reverse_continue_internal(self, async_mode):
4745

4846
@skipIfRemote
4947
@skipIf(macos_version=["<", "15.0"])
50-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
5148
def test_reverse_continue_breakpoint(self):
5249
self.reverse_continue_breakpoint_internal(async_mode=False)
5350

5451
@skipIfRemote
5552
@skipIf(macos_version=["<", "15.0"])
56-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
5753
def test_reverse_continue_breakpoint_async(self):
5854
self.reverse_continue_breakpoint_internal(async_mode=True)
5955

@@ -72,13 +68,11 @@ def reverse_continue_breakpoint_internal(self, async_mode):
7268

7369
@skipIfRemote
7470
@skipIf(macos_version=["<", "15.0"])
75-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
7671
def test_reverse_continue_skip_breakpoint(self):
7772
self.reverse_continue_skip_breakpoint_internal(async_mode=False)
7873

7974
@skipIfRemote
8075
@skipIf(macos_version=["<", "15.0"])
81-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
8276
def test_reverse_continue_skip_breakpoint_async(self):
8377
self.reverse_continue_skip_breakpoint_internal(async_mode=True)
8478

@@ -104,13 +98,11 @@ def reverse_continue_skip_breakpoint_internal(self, async_mode):
10498

10599
@skipIfRemote
106100
@skipIf(macos_version=["<", "15.0"])
107-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
108101
def test_continue_preserves_direction(self):
109102
self.continue_preserves_direction_internal(async_mode=False)
110103

111104
@skipIfRemote
112105
@skipIf(macos_version=["<", "15.0"])
113-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
114106
def test_continue_preserves_direction_asyhc(self):
115107
self.continue_preserves_direction_internal(async_mode=True)
116108

lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@
1111
class TestReverseContinueWatchpoints(ReverseTestBase):
1212
@skipIfRemote
1313
@skipIf(macos_version=["<", "15.0"])
14-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
1514
def test_reverse_continue_watchpoint(self):
1615
self.reverse_continue_watchpoint_internal(async_mode=False)
1716

1817
@skipIfRemote
1918
@skipIf(macos_version=["<", "15.0"])
20-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
2119
def test_reverse_continue_watchpoint_async(self):
2220
self.reverse_continue_watchpoint_internal(async_mode=True)
2321

@@ -63,13 +61,11 @@ def reverse_continue_watchpoint_internal(self, async_mode):
6361

6462
@skipIfRemote
6563
@skipIf(macos_version=["<", "15.0"])
66-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
6764
def test_reverse_continue_skip_watchpoint(self):
6865
self.reverse_continue_skip_watchpoint_internal(async_mode=False)
6966

7067
@skipIfRemote
7168
@skipIf(macos_version=["<", "15.0"])
72-
@skipIf(oslist=lldbplatformutil.getDarwinOSTriples(), archs=["x86_64"])
7369
def test_reverse_continue_skip_watchpoint_async(self):
7470
self.reverse_continue_skip_watchpoint_internal(async_mode=True)
7571

0 commit comments

Comments
 (0)