================
@@ -227,6 +237,56 @@ TEST_F(MemoryTest, TesetMemoryCacheRead) {
// old cache
}
+TEST_F(MemoryTest, TestProcessReadSignedInteger) {
+ ArchSpec arch("x86_64-apple-macosx-");
+
+ Platform::SetHostPlatform(PlatformRemoteMacOSX::CreateInstance(true, &arch));
+
+ DebuggerSP debugger_sp = Debugger::CreateInstance();
+ ASSERT_TRUE(debugger_sp);
+
+ TargetSP target_sp = CreateTarget(debugger_sp, arch);
+ ASSERT_TRUE(target_sp);
+
+ ListenerSP listener_sp(Listener::MakeListener("dummy"));
+ ProcessSP process_sp = std::make_shared<DummyProcess>(target_sp,
listener_sp);
+ ASSERT_TRUE(process_sp);
+
+ DummyProcess *process = static_cast<DummyProcess *>(process_sp.get());
+ process->SetFiller(0xff);
+ process->SetMaxReadSize(4);
+
+ Status error;
+ int64_t val = process->ReadSignedIntegerFromMemory(0, 4, 0, error);
----------------
DavidSpickett wrote:
Can you explain how this previously failed?
It looks like it will read 0xFF_FF_FF_FF. Which is already "sign extended".
Shouldn't the fill value be something with the most significant bit not set?
https://github.com/llvm/llvm-project/pull/169150
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits