diff options
| author | Ilia Kuklin <ikuklin@accesssoftek.com> | 2025-05-05 20:53:04 +0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-05 20:53:04 +0500 |
| commit | 0eff4108cb1e0a597ba70a4e1b8e1ce3ae0cfd46 (patch) | |
| tree | 7fab34f57dc98c9d1a3f42f8ccde5cd94cdcde90 /lldb/test/API/python_api | |
| parent | 4418a8e5ef865bc5062a338697ddd44b14c8005d (diff) | |
| download | llvm-0eff4108cb1e0a597ba70a4e1b8e1ce3ae0cfd46.zip llvm-0eff4108cb1e0a597ba70a4e1b8e1ce3ae0cfd46.tar.gz llvm-0eff4108cb1e0a597ba70a4e1b8e1ce3ae0cfd46.tar.bz2 | |
[LLDB] Fix `ValueObject::AddressOf()` return value (#137688)
`ValueObject::AddressOf()` used to return address as a value which has
it's own address, allowing to do `value.AddressOf().AddressOf()`.
This patch makes the return address a simple const value.
Diffstat (limited to 'lldb/test/API/python_api')
| -rw-r--r-- | lldb/test/API/python_api/sbvalue_const_addrof/main.cpp | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/lldb/test/API/python_api/sbvalue_const_addrof/main.cpp b/lldb/test/API/python_api/sbvalue_const_addrof/main.cpp index 318a45b..ae6abc8 100644 --- a/lldb/test/API/python_api/sbvalue_const_addrof/main.cpp +++ b/lldb/test/API/python_api/sbvalue_const_addrof/main.cpp @@ -3,21 +3,21 @@ struct RegisterContext { - uintptr_t r0; - uintptr_t r1; - uintptr_t r2; - uintptr_t r3; - uintptr_t r4; - uintptr_t pc; - uintptr_t fp; - uintptr_t sp; + uintptr_t r0; + uintptr_t r1; + uintptr_t r2; + uintptr_t r3; + uintptr_t r4; + uintptr_t pc; + uintptr_t fp; + uintptr_t sp; }; struct ThreadInfo { - uint32_t tid; - const char *name; - RegisterContext regs; - ThreadInfo *next; + uint32_t tid; + const char *name; + RegisterContext regs; + ThreadInfo *next; }; int main (int argc, char const *argv[], char const *envp[]); @@ -27,14 +27,17 @@ ThreadInfo *g_thread_list_ptr = &g_thread1; int main (int argc, char const *argv[], char const *envp[]) { - printf ("g_thread_list is %p\n", g_thread_list_ptr); - return 0; //% v = self.dbg.GetSelectedTarget().FindFirstGlobalVariable('g_thread_list_ptr') - //% v_gla = v.GetChildMemberWithName('regs').GetLoadAddress() - //% v_aof = v.GetChildMemberWithName('regs').AddressOf().GetValueAsUnsigned(lldb.LLDB_INVALID_ADDRESS) - //% expr = '(%s)0x%x' % (v.GetType().GetName(), v.GetValueAsUnsigned(0)) - //% e = v.CreateValueFromExpression('e', expr) - //% e_gla = e.GetChildMemberWithName('regs').GetLoadAddress() - //% e_aof = e.GetChildMemberWithName('regs').AddressOf().GetValueAsUnsigned(lldb.LLDB_INVALID_ADDRESS) - //% self.assertTrue(v_gla == e_gla, "GetLoadAddress() differs") - //% self.assertTrue(v_aof == e_aof, "AddressOf() differs") + // clang-format off + printf ("g_thread_list is %p\n", g_thread_list_ptr); + return 0; //% v = self.dbg.GetSelectedTarget().FindFirstGlobalVariable('g_thread_list_ptr') + //% self.assertTrue(v.AddressOf().IsValid()) + //% self.assertFalse(v.AddressOf().AddressOf().IsValid()) + //% v_gla = v.GetChildMemberWithName('regs').GetLoadAddress() + //% v_aof = v.GetChildMemberWithName('regs').AddressOf().GetValueAsUnsigned(lldb.LLDB_INVALID_ADDRESS) + //% expr = '(%s)0x%x' % (v.GetType().GetName(), v.GetValueAsUnsigned(0)) + //% e = v.CreateValueFromExpression('e', expr) + //% e_gla = e.GetChildMemberWithName('regs').GetLoadAddress() + //% e_aof = e.GetChildMemberWithName('regs').AddressOf().GetValueAsUnsigned(lldb.LLDB_INVALID_ADDRESS) + //% self.assertTrue(v_gla == e_gla, "GetLoadAddress() differs") + //% self.assertTrue(v_aof == e_aof, "AddressOf() differs") } |
