ROSE  0.9.9.168
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::@753 bblock
Settings for basic blocks.
struct Rose::BinaryAnalysis::Unparser::Settings::@752::@757 callconv
Settings for function calling convention.
Sawyer::CommandLine::SwitchGroup commandLineSwitches(Settings &settings)
Command-line switches for unparser settings.
struct Rose::BinaryAnalysis::Unparser::Settings::@754::@765 operands
Settings for the operand list.
struct Rose::BinaryAnalysis::Unparser::Settings::@754::@764 mnemonic
Settings for instruction mnemonics.
bool usingDescription
Lacking comment, use instruction description as comment?
size_t perLine
Max number of bytes to show per line of output.
struct Rose::BinaryAnalysis::Unparser::Settings::@752::@755 cg
Settings for function call graphs.
A collection of related switch declarations.
Definition: CommandLine.h:2488
struct Rose::BinaryAnalysis::Unparser::Settings::@752::@756 stackDelta
Settings for function stack deltas.
Main namespace for the ROSE library.
Settings that control unparsing.
bool showingPredecessors
Show basic block predecessors?
bool showingSharing
Show functions when block is shared?
struct Rose::BinaryAnalysis::Unparser::Settings::@753::@760 cfg
Settings for control flow graphs.
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::@754::@766 comment
Settings for instruction comments.
struct Rose::BinaryAnalysis::Unparser::Settings::@754::@761 address
Settings for instruction starting addresses.
struct Rose::BinaryAnalysis::Unparser::Settings::@752::@758 noop
Settings for no-op analysis.
std::string post
String to terminate a comment.
struct Rose::BinaryAnalysis::Unparser::Settings::@754 insn
Settings for instructions.
size_t fieldWidth
Min characters to use per insn address.
bool concrete
Show concrete or symbolic deltas.
bool showingDemangled
Show demangled name in preference to mangled name.
struct Rose::BinaryAnalysis::Unparser::Settings::@754::@762 bytes
Settings for the bytes that make up an instruction.
struct Rose::BinaryAnalysis::Unparser::Settings::@752::@759 mayReturn
Settings for may-return analysis.
bool showingSuccessors
Show basic block successors?