ROSE  0.9.9.139
BinaryUnparser.h
1 // Basic types for binary unparsing.
2 #ifndef ROSE_BinaryAnalysis_Unparser_H
3 #define ROSE_BinaryAnalysis_Unparser_H
4 
5 #include <Sawyer/CommandLine.h>
6 
7 namespace Rose {
8 namespace BinaryAnalysis {
9 namespace Unparser {
10 
16 struct Settings {
17  virtual ~Settings() {}
18 
19  struct {
22  struct {
23  bool showing;
24  } cg;
25  struct {
26  bool showing;
27  bool concrete;
28  } stackDelta;
29  struct {
30  bool showing;
31  } callconv;
32  struct {
33  bool showing;
34  } noop;
35  struct {
36  bool showing;
37  } mayReturn;
38  } function;
40  struct {
41  struct {
45  } cfg;
46  } bblock;
48  struct {
49  struct {
50  bool showing;
51  size_t fieldWidth;
52  } address;
54  struct {
55  bool showing;
56  size_t perLine;
57  size_t fieldWidth;
58  } bytes;
60  struct {
61  bool showing;
62  size_t fieldWidth;
63  } stackDelta;
65  struct {
66  size_t fieldWidth;
67  } mnemonic;
69  struct {
70  std::string separator;
71  size_t fieldWidth;
72  } operands;
74  struct {
75  bool showing;
77  std::string pre;
78  std::string post;
79  size_t fieldWidth;
80  } comment;
81  } insn;
83  Settings();
84  static Settings full();
85  static Settings minimal();
86 };
87 
88 // Forward declarations.
89 class Base;
90 class State;
91 typedef Sawyer::SharedPointer<Base> BasePtr;
92 
95 
96 } // namespace
97 } // namespace
98 } // namespace
99 
100 #endif
struct Rose::BinaryAnalysis::Unparser::Settings::@722::@734 comment
Settings for instruction comments.
struct Rose::BinaryAnalysis::Unparser::Settings::@722::@733 operands
Settings for the operand list.
struct Rose::BinaryAnalysis::Unparser::Settings::@720::@727 mayReturn
Settings for may-return analysis.
struct Rose::BinaryAnalysis::Unparser::Settings::@721 bblock
Settings for basic blocks.
struct Rose::BinaryAnalysis::Unparser::Settings::@720::@724 stackDelta
Settings for function stack deltas.
Sawyer::CommandLine::SwitchGroup commandLineSwitches(Settings &settings)
Command-line switches for unparser settings.
bool usingDescription
Lacking comment, use instruction description as comment?
size_t perLine
Max number of bytes to show per line of output.
A collection of related switch declarations.
Definition: CommandLine.h:2488
Main namespace for the ROSE library.
Settings that control unparsing.
bool showingPredecessors
Show basic block predecessors?
struct Rose::BinaryAnalysis::Unparser::Settings::@722::@732 mnemonic
Settings for instruction mnemonics.
bool showingSharing
Show functions when block is shared?
bool showing
Show function call graph?
bool showingReasons
Show reasons for function existing.
std::string pre
String to introduce a comment.
std::string separator
How to separate one operand from another.
struct Rose::BinaryAnalysis::Unparser::Settings::@720::@723 cg
Settings for function call graphs.
struct Rose::BinaryAnalysis::Unparser::Settings::@720::@725 callconv
Settings for function calling convention.
struct Rose::BinaryAnalysis::Unparser::Settings::@722 insn
Settings for instructions.
struct Rose::BinaryAnalysis::Unparser::Settings::@720::@726 noop
Settings for no-op analysis.
std::string post
String to terminate a comment.
size_t fieldWidth
Min characters to use per insn address.
bool concrete
Show concrete or symbolic deltas.
struct Rose::BinaryAnalysis::Unparser::Settings::@722::@730 bytes
Settings for the bytes that make up an instruction.
bool showingDemangled
Show demangled name in preference to mangled name.
struct Rose::BinaryAnalysis::Unparser::Settings::@721::@728 cfg
Settings for control flow graphs.
bool showingSuccessors
Show basic block successors?
struct Rose::BinaryAnalysis::Unparser::Settings::@722::@729 address
Settings for instruction starting addresses.