1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
4 #ifndef ROSE_ANALYSIS_DEBUGGING_UTILS_H
5 #define ROSE_ANALYSIS_DEBUGGING_UTILS_H
17 virtual std::string str(std::string indent=
"")=0;
26 virtual std::string toDOT(std::string graphName)=0;
35 void dotGraphGenerator (
Analysis *a);
47 std::streambuf* baseBuf;
48 std::list<std::string> funcs;
57 std::list<int> parentDivs;
65 dbgBuf(std::streambuf* baseBuf);
66 void init(std::streambuf* baseBuf);
71 virtual int overflow(
int c);
77 int printString(std::string s);
81 virtual std::streamsize xsputn(
const char * s, std::streamsize n);
89 void ownerAccessing();
92 void enterFunc(std::string funcName);
93 void exitFunc(std::string funcName);
99 std::ofstream dbgFile;
101 std::vector<std::string> colors;
107 std::string dbgFileName;
111 std::ofstream summaryF;
117 dbgStream(std::string title, std::string dbgFileName, std::string workDir, std::string imgPath);
118 void init(std::string title, std::string dbgFileName, std::string workDir, std::string imgPath);
120 void printDetailFileHeader(std::string title);
121 void printDetailFileTrailer();
124 void enterFunc(std::string funcName);
125 void exitFunc(std::string funcName);
129 std::string addImage(std::string ext=
".gif");
136 std::string addDOTStr(
dottable& obj);
139 std::string addDOT(std::string dot);
141 void addDOT(std::string imgFName, std::string graphName, std::string dot, std::ostream& ret);
144 extern bool initialized;
148 void init(std::string title, std::string workDir, std::string fName=
"debug");
151 void enterFunc(std::string funcName);
152 void exitFunc(std::string funcName);
156 std::string addImage(std::string ext=
".gif");
164 std::string addDOTStr(
dottable& obj);
168 std::string addDOT(std::string dot);
173 std::string escape(std::string s);