aboutsummaryrefslogtreecommitdiff
path: root/lldb/include/lldb/Core/Disassembler.h
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/include/lldb/Core/Disassembler.h')
-rw-r--r--lldb/include/lldb/Core/Disassembler.h76
1 files changed, 25 insertions, 51 deletions
diff --git a/lldb/include/lldb/Core/Disassembler.h b/lldb/include/lldb/Core/Disassembler.h
index 7ece0eeb708c..926a74b933ef 100644
--- a/lldb/include/lldb/Core/Disassembler.h
+++ b/lldb/include/lldb/Core/Disassembler.h
@@ -6,8 +6,8 @@
//
//===----------------------------------------------------------------------===//
-#ifndef liblldb_Disassembler_h_
-#define liblldb_Disassembler_h_
+#ifndef LLDB_CORE_DISASSEMBLER_H
+#define LLDB_CORE_DISASSEMBLER_H
#include "lldb/Core/Address.h"
#include "lldb/Core/EmulateInstruction.h"
@@ -349,7 +349,8 @@ public:
protected:
std::string m_description;
- DISALLOW_COPY_AND_ASSIGN(PseudoInstruction);
+ PseudoInstruction(const PseudoInstruction &) = delete;
+ const PseudoInstruction &operator=(const PseudoInstruction &) = delete;
};
class Disassembler : public std::enable_shared_from_this<Disassembler>,
@@ -379,13 +380,19 @@ public:
FindPlugin(const ArchSpec &arch, const char *flavor, const char *plugin_name);
// This version will use the value in the Target settings if flavor is NULL;
- static lldb::DisassemblerSP
- FindPluginForTarget(const lldb::TargetSP target_sp, const ArchSpec &arch,
- const char *flavor, const char *plugin_name);
+ static lldb::DisassemblerSP FindPluginForTarget(const Target &target,
+ const ArchSpec &arch,
+ const char *flavor,
+ const char *plugin_name);
+
+ struct Limit {
+ enum { Bytes, Instructions } kind;
+ lldb::addr_t value;
+ };
static lldb::DisassemblerSP
DisassembleRange(const ArchSpec &arch, const char *plugin_name,
- const char *flavor, const ExecutionContext &exe_ctx,
+ const char *flavor, Target &target,
const AddressRange &disasm_range, bool prefer_file_cache);
static lldb::DisassemblerSP
@@ -396,34 +403,11 @@ public:
static bool Disassemble(Debugger &debugger, const ArchSpec &arch,
const char *plugin_name, const char *flavor,
- const ExecutionContext &exe_ctx,
- const AddressRange &range, uint32_t num_instructions,
- bool mixed_source_and_assembly,
- uint32_t num_mixed_context_lines, uint32_t options,
- Stream &strm);
-
- static bool Disassemble(Debugger &debugger, const ArchSpec &arch,
- const char *plugin_name, const char *flavor,
const ExecutionContext &exe_ctx, const Address &start,
- uint32_t num_instructions,
- bool mixed_source_and_assembly,
+ Limit limit, bool mixed_source_and_assembly,
uint32_t num_mixed_context_lines, uint32_t options,
Stream &strm);
- static size_t
- Disassemble(Debugger &debugger, const ArchSpec &arch, const char *plugin_name,
- const char *flavor, const ExecutionContext &exe_ctx,
- SymbolContextList &sc_list, uint32_t num_instructions,
- bool mixed_source_and_assembly, uint32_t num_mixed_context_lines,
- uint32_t options, Stream &strm);
-
- static bool
- Disassemble(Debugger &debugger, const ArchSpec &arch, const char *plugin_name,
- const char *flavor, const ExecutionContext &exe_ctx,
- ConstString name, Module *module,
- uint32_t num_instructions, bool mixed_source_and_assembly,
- uint32_t num_mixed_context_lines, uint32_t options, Stream &strm);
-
static bool
Disassemble(Debugger &debugger, const ArchSpec &arch, const char *plugin_name,
const char *flavor, const ExecutionContext &exe_ctx,
@@ -434,25 +418,14 @@ public:
Disassembler(const ArchSpec &arch, const char *flavor);
~Disassembler() override;
- typedef const char *(*SummaryCallback)(const Instruction &inst,
- ExecutionContext *exe_context,
- void *user_data);
-
- static bool PrintInstructions(Disassembler *disasm_ptr, Debugger &debugger,
- const ArchSpec &arch,
- const ExecutionContext &exe_ctx,
- uint32_t num_instructions,
- bool mixed_source_and_assembly,
- uint32_t num_mixed_context_lines,
- uint32_t options, Stream &strm);
-
- size_t ParseInstructions(const ExecutionContext *exe_ctx,
- const AddressRange &range, Stream *error_strm_ptr,
- bool prefer_file_cache);
+ void PrintInstructions(Debugger &debugger, const ArchSpec &arch,
+ const ExecutionContext &exe_ctx,
+ bool mixed_source_and_assembly,
+ uint32_t num_mixed_context_lines, uint32_t options,
+ Stream &strm);
- size_t ParseInstructions(const ExecutionContext *exe_ctx,
- const Address &range, uint32_t num_instructions,
- bool prefer_file_cache);
+ size_t ParseInstructions(Target &target, Address address, Limit limit,
+ Stream *error_strm_ptr, bool prefer_file_cache);
virtual size_t DecodeInstructions(const Address &base_addr,
const DataExtractor &data,
@@ -548,9 +521,10 @@ protected:
private:
// For Disassembler only
- DISALLOW_COPY_AND_ASSIGN(Disassembler);
+ Disassembler(const Disassembler &) = delete;
+ const Disassembler &operator=(const Disassembler &) = delete;
};
} // namespace lldb_private
-#endif // liblldb_Disassembler_h_
+#endif // LLDB_CORE_DISASSEMBLER_H