1#ifndef ROSE_BinaryAnalysis_Disassembler_Exception_H
2#define ROSE_BinaryAnalysis_Disassembler_Exception_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
6#include <Rose/Exception.h>
8#include <Cxx_GrammarDeclarations.h>
9#include <sageContainer.h>
15namespace BinaryAnalysis {
16namespace Disassembler {
41 void print(std::ostream&)
const;
42 friend std::ostream& operator<<(std::ostream &o,
const Exception &e);
Exception thrown by the disassemblers.
Exception(const std::string &reason, Address ip, const SgUnsignedCharList &raw_data, size_t bit)
An exception bound to a particular instruction being disassembled.
Exception(const std::string &reason, SgAsmInstruction *)
An exception bound to a particular instruction being assembled.
Exception(const std::string &reason)
A bare exception not bound to any particular instruction.
size_t bit
Bit offset in instruction byte sequence where disassembly failed (bit/8 is the index into the "bytes"...
SgAsmInstruction * insn
Instruction associated with an assembly error.
SgUnsignedCharList bytes
Bytes (partial) of failed disassembly, including byte at failure.
Address ip
Virtual address where failure occurred; zero if no associated instruction.
Exception(const std::string &reason, Address ip)
An exception bound to a virtual address but no raw data or instruction.
Base class for all ROSE exceptions.
Base class for machine instructions.
std::uint64_t Address
Address.