ROSE 0.11.145.147
Classes | Public Member Functions | Public Attributes | List of all members
Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler Class Reference

Description

Disassembles static data as if it were code.

This callback only does something if it is first initialized with a disassembler. It can also be initialized with an unparser, but that is optional (the default unparser will be the same as a default-constructed AsmUnparser except that a pre-instruction callback is added to print the string "(data)" in front of every instruction as a reminder that the instruction came from what ROSE considered to be static data.

Definition at line 604 of file AsmUnparser.h.

#include <backend/asmUnparser/AsmUnparser.h>

Inheritance diagram for Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler:
Collaboration graph
[legend]

Classes

class  DataNote
 

Public Member Functions

virtual void reset ()
 
virtual void init (const Disassembler::BasePtr &disassembler, AsmUnparser *unparser=NULL)
 
virtual bool operator() (bool enabled, const StaticDataArgs &args)
 Default callbacks.
 
- Public Member Functions inherited from Rose::BinaryAnalysis::AsmUnparser::UnparserCallback
virtual bool operator() (bool, const InsnArgs &)
 Default callbacks.
 
virtual bool operator() (bool, const BasicBlockArgs &)
 Default callbacks.
 
virtual bool operator() (bool, const DataBlockArgs &)
 Default callbacks.
 
virtual bool operator() (bool, const FunctionArgs &)
 Default callbacks.
 
virtual bool operator() (bool, const InterpretationArgs &)
 Default callbacks.
 

Public Attributes

DataNote data_note
 
Disassembler::BasePtr disassembler
 
AsmUnparserunparser = nullptr
 
bool unparser_allocated_here = false
 

Member Function Documentation

◆ operator()()

virtual bool Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler::operator() ( bool  ,
const StaticDataArgs  
)
virtual

Default callbacks.

The default is to abort, because if these are called it means one of three things:

  1. The arguments are wrong in the subclass and the subclass therefore isn't providing an implementation when it thinks it is.
  2. The wrong type was used for the second argument. Instruction callbacks use InsnArgs, basic block callbacks use BasicBlockArgs, etc.
  3. The functor was added to the wrong callback list. For instance, an instruction functor was accidently added to one of the function callback lists.

Reimplemented from Rose::BinaryAnalysis::AsmUnparser::UnparserCallback.

Member Data Documentation

◆ data_note

DataNote Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler::data_note

Definition at line 615 of file AsmUnparser.h.

◆ disassembler

Disassembler::BasePtr Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler::disassembler

Definition at line 616 of file AsmUnparser.h.

◆ unparser

AsmUnparser* Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler::unparser = nullptr

Definition at line 617 of file AsmUnparser.h.

◆ unparser_allocated_here

bool Rose::BinaryAnalysis::AsmUnparser::StaticDataDisassembler::unparser_allocated_here = false

Definition at line 618 of file AsmUnparser.h.


The documentation for this class was generated from the following file: