4#ifndef ROSE_BinaryAnalysis_Utility_H
5#define ROSE_BinaryAnalysis_Utility_H
6#include <featureTests.h>
7#ifdef ROSE_ENABLE_BINARY_ANALYSIS
9#include "AsmUnparser_compat.h"
12namespace BinaryAnalysis {
20 typedef typename boost::graph_traits<Graph>::vertex_descriptor
Vertex;
21 void operator()(std::ostream &output,
const Vertex &v)
const {
24 SgAsmFunction *func = SageInterface::getEnclosingNode<SgAsmFunction>(insn);
25 output <<
"[ label=\"[" <<v <<
"] " <<insn->
toString() <<
"\"";
27 output <<
", style=filled, color=\"#cd853f\"";
28 }
else if (x86 && x86_ret==x86->
get_kind()) {
29 output <<
", style=filled, color=\"#fed3a7\"";
Represents a synthesized function.
rose_addr_t const & get_entryVa() const
Property: Primary entry address.
Base class for machine instructions.
virtual std::string toString() const
Converts the instruction to a string.
rose_addr_t const & get_address() const
Property: Starting virtual address.
Represents one Intel x86 machine instruction.
Rose::BinaryAnalysis::X86InstructionKind const & get_kind() const
Property: Instruction kind.
Sawyer::Container::Graph< V, E >::VertexValue get_ast_node(const Sawyer::Container::Graph< V, E > &cfg, size_t vertexId)
Return the AST node associated with a vertex.
A vertex property writer for instruction-based CFGs.