forked from OSchip/llvm-project
Revert "[lldb] Assert filecache and live memory match on debug under a setting"
This reverts commit 77e9d10f0f
.
This change broke the Windows LLDB bot:
https://lab.llvm.org/buildbot/#/builders/83/builds/8784/steps/7/logs/stdio
This commit is contained in:
parent
f8819c109e
commit
66ba4e3dc6
|
@ -236,8 +236,6 @@ public:
|
|||
|
||||
void SetIsRelocated(bool b) { m_relocated = b; }
|
||||
|
||||
bool IsReadOnly();
|
||||
|
||||
protected:
|
||||
ObjectFile *m_obj_file; // The object file that data for this section should
|
||||
// be read from
|
||||
|
|
|
@ -229,10 +229,6 @@ public:
|
|||
|
||||
bool GetDebugUtilityExpression() const;
|
||||
|
||||
void SetVerifyFileCacheMemoryReads(bool debug);
|
||||
|
||||
bool GetVerifyFileCacheMemoryReads() const;
|
||||
|
||||
private:
|
||||
// Callbacks for m_launch_info.
|
||||
void Arg0ValueChangedCallback();
|
||||
|
|
|
@ -798,9 +798,6 @@ class Base(unittest2.TestCase):
|
|||
'settings set symbols.clang-modules-cache-path "{}"'.format(
|
||||
configuration.lldb_module_cache_dir),
|
||||
"settings set use-color false",
|
||||
|
||||
# Verify that file cache and live memory always match.
|
||||
"settings set target.verify-file-cache-memory-reads true",
|
||||
]
|
||||
|
||||
# Set any user-overridden settings.
|
||||
|
|
|
@ -599,9 +599,3 @@ size_t SectionList::Slide(addr_t slide_amount, bool slide_children) {
|
|||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
bool Section::IsReadOnly() {
|
||||
auto permissions = Flags(GetPermissions());
|
||||
return !permissions.Test(ePermissionsWritable) &&
|
||||
permissions.Test(ePermissionsReadable);
|
||||
}
|
||||
|
|
|
@ -1763,34 +1763,21 @@ size_t Target::ReadMemory(const Address &addr, void *dst, size_t dst_len,
|
|||
// Read from file cache if read-only section.
|
||||
if (!force_live_memory && resolved_addr.IsSectionOffset()) {
|
||||
SectionSP section_sp(resolved_addr.GetSection());
|
||||
if (section_sp && section_sp->IsReadOnly()) {
|
||||
file_cache_bytes_read =
|
||||
ReadMemoryFromFileCache(resolved_addr, dst, dst_len, error);
|
||||
|
||||
if (GetVerifyFileCacheMemoryReads()) {
|
||||
if (ProcessIsValid() && file_cache_bytes_read == dst_len) {
|
||||
if (load_addr == LLDB_INVALID_ADDRESS)
|
||||
load_addr = resolved_addr.GetLoadAddress(this);
|
||||
if (load_addr != LLDB_INVALID_ADDRESS) {
|
||||
std::unique_ptr<uint8_t[]> live_buf =
|
||||
std::make_unique<uint8_t[]>(dst_len);
|
||||
bytes_read = m_process_sp->ReadMemory(load_addr, live_buf.get(),
|
||||
dst_len, error);
|
||||
if (bytes_read == dst_len) {
|
||||
lldbassert(memcmp(live_buf.get(), dst, dst_len) == 0 &&
|
||||
"File cache and live memory diverge!");
|
||||
}
|
||||
}
|
||||
if (section_sp) {
|
||||
auto permissions = Flags(section_sp->GetPermissions());
|
||||
bool is_readonly = !permissions.Test(ePermissionsWritable) &&
|
||||
permissions.Test(ePermissionsReadable);
|
||||
if (is_readonly) {
|
||||
file_cache_bytes_read =
|
||||
ReadMemoryFromFileCache(resolved_addr, dst, dst_len, error);
|
||||
if (file_cache_bytes_read == dst_len)
|
||||
return file_cache_bytes_read;
|
||||
else if (file_cache_bytes_read > 0) {
|
||||
file_cache_read_buffer =
|
||||
std::make_unique<uint8_t[]>(file_cache_bytes_read);
|
||||
std::memcpy(file_cache_read_buffer.get(), dst, file_cache_bytes_read);
|
||||
}
|
||||
}
|
||||
|
||||
if (file_cache_bytes_read == dst_len)
|
||||
return file_cache_bytes_read;
|
||||
if (file_cache_bytes_read > 0) {
|
||||
file_cache_read_buffer =
|
||||
std::make_unique<uint8_t[]>(file_cache_bytes_read);
|
||||
std::memcpy(file_cache_read_buffer.get(), dst, file_cache_bytes_read);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4389,17 +4376,6 @@ void TargetProperties::SetDebugUtilityExpression(bool debug) {
|
|||
m_collection_sp->SetPropertyAtIndexAsBoolean(nullptr, idx, debug);
|
||||
}
|
||||
|
||||
bool TargetProperties::GetVerifyFileCacheMemoryReads() const {
|
||||
const uint32_t idx = ePropertyVerifyFileCacheMemoryReads;
|
||||
return m_collection_sp->GetPropertyAtIndexAsBoolean(
|
||||
nullptr, idx, g_target_properties[idx].default_uint_value != 0);
|
||||
}
|
||||
|
||||
void TargetProperties::SetVerifyFileCacheMemoryReads(bool verify) {
|
||||
const uint32_t idx = ePropertyVerifyFileCacheMemoryReads;
|
||||
m_collection_sp->SetPropertyAtIndexAsBoolean(nullptr, idx, verify);
|
||||
}
|
||||
|
||||
// Target::TargetEventData
|
||||
|
||||
Target::TargetEventData::TargetEventData(const lldb::TargetSP &target_sp)
|
||||
|
|
|
@ -175,9 +175,6 @@ let Definition = "target" in {
|
|||
def DebugUtilityExpression: Property<"debug-utility-expression", "Boolean">,
|
||||
DefaultFalse,
|
||||
Desc<"Enable debugging of LLDB-internal utility expressions.">;
|
||||
def VerifyFileCacheMemoryReads: Property<"verify-file-cache-memory-reads", "Boolean">,
|
||||
DefaultFalse,
|
||||
Desc<"Verify that memory read from the file-cache is identical to the memory read from the process.">;
|
||||
}
|
||||
|
||||
let Definition = "process_experimental" in {
|
||||
|
|
|
@ -6,4 +6,3 @@ settings set symbols.clang-modules-cache-path "@LLDB_TEST_MODULE_CACHE_LLDB@"
|
|||
settings set target.auto-apply-fixits false
|
||||
settings set target.inherit-tcc true
|
||||
settings set target.detach-on-error false
|
||||
settings set target.verify-file-cache-memory-reads true
|
||||
|
|
Loading…
Reference in New Issue