//===-- MemoryRegionInfo.cpp ----------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "lldb/Target/MemoryRegionInfo.h" using namespace lldb_private; llvm::raw_ostream &lldb_private::operator<<(llvm::raw_ostream &OS, const MemoryRegionInfo &Info) { return OS << llvm::formatv("MemoryRegionInfo([{0}, {1}), {2:r}{3:w}{4:x}, " "{5}, `{6}`, {7}, {8}, {9})", Info.GetRange().GetRangeBase(), Info.GetRange().GetRangeEnd(), Info.GetReadable(), Info.GetWritable(), Info.GetExecutable(), Info.GetMapped(), Info.GetName(), Info.GetFlash(), Info.GetBlocksize(), Info.GetMemoryTagged()); } void llvm::format_provider::format( const MemoryRegionInfo::OptionalBool &B, raw_ostream &OS, StringRef Options) { assert(Options.size() <= 1); bool Empty = Options.empty(); switch (B) { case lldb_private::MemoryRegionInfo::eNo: OS << (Empty ? "no" : "-"); return; case lldb_private::MemoryRegionInfo::eYes: OS << (Empty ? "yes" : Options); return; case lldb_private::MemoryRegionInfo::eDontKnow: OS << (Empty ? "don't know" : "?"); return; } }