Skip to content

Commit 09f3cd8

Browse files
Merge pull request swiftlang#10296 from felipepiovezan/felipe/read_write_registers_thread_memory_cherry-pick
2 parents 21a94c9 + 6a060bd commit 09f3cd8

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,14 @@ bool RegisterContextThreadMemory::ReadAllRegisterValues(
114114
return false;
115115
}
116116

117+
bool RegisterContextThreadMemory::ReadAllRegisterValues(
118+
lldb_private::RegisterCheckpoint &reg_checkpoint) {
119+
UpdateRegisterContext();
120+
if (m_reg_ctx_sp)
121+
return m_reg_ctx_sp->ReadAllRegisterValues(reg_checkpoint);
122+
return false;
123+
}
124+
117125
bool RegisterContextThreadMemory::WriteAllRegisterValues(
118126
const lldb::DataBufferSP &data_sp) {
119127
UpdateRegisterContext();
@@ -122,6 +130,14 @@ bool RegisterContextThreadMemory::WriteAllRegisterValues(
122130
return false;
123131
}
124132

133+
bool RegisterContextThreadMemory::WriteAllRegisterValues(
134+
const lldb_private::RegisterCheckpoint &reg_checkpoint) {
135+
UpdateRegisterContext();
136+
if (m_reg_ctx_sp)
137+
return m_reg_ctx_sp->WriteAllRegisterValues(reg_checkpoint);
138+
return false;
139+
}
140+
125141
bool RegisterContextThreadMemory::CopyFromRegisterContext(
126142
lldb::RegisterContextSP reg_ctx_sp) {
127143
UpdateRegisterContext();

lldb/source/Plugins/Process/Utility/RegisterContextThreadMemory.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,12 @@ class RegisterContextThreadMemory : public lldb_private::RegisterContext {
5252
// so these API's should only be used when this behavior is needed.
5353

5454
bool ReadAllRegisterValues(lldb::WritableDataBufferSP &data_sp) override;
55+
bool ReadAllRegisterValues(
56+
lldb_private::RegisterCheckpoint &reg_checkpoint) override;
5557

5658
bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
59+
bool WriteAllRegisterValues(
60+
const lldb_private::RegisterCheckpoint &reg_checkpoint) override;
5761

5862
bool CopyFromRegisterContext(lldb::RegisterContextSP context);
5963

lldb/test/API/lang/swift/async/expr/TestSwiftAsyncExpressions.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ def test_actor(self):
1818
target, process, thread, main_bkpt = lldbutil.run_to_source_breakpoint(
1919
self, 'break here', lldb.SBFileSpec("main.swift"))
2020
self.expect("expr n", substrs=["42"])
21+
process.Continue()
22+
stop_desc = process.GetSelectedThread().GetStopDescription(1024)
23+
self.assertNotIn("EXC_BAD_ACCESS", stop_desc)

0 commit comments

Comments
 (0)