blob: 62f375a396a5bc19fc58addaa878bca1182daa12 [file] [log] [blame]
#include <stdlib.h>
#define CANVAS_PATH "CANVAS_PATH"
class SkFile {
FILE* file;
bool busted;
char* sz;
mutable int i;
public:
SkFile(unsigned long id) {
file = NULL;
busted = false;
sz = new char[100000];
set(id);
i = 100;
}
~SkFile() {
delete sz;
if (file) {
fclose(file);
}
}
void set(unsigned long id) {
if (busted) {
return;
}
if (file == NULL) {
char sz[10000];
sprintf(sz, "%s\\%ul.callstacks.txt", getenv(CANVAS_PATH), id);
file = fopen(sz, "a");
if (file == NULL) {
busted = true;
}
fprintf(file, "\n\n\nNEW SESSION, just coliding ids ... should generate a new file ideally ... \n\n\n");
}
}
void appendLine(const char* sz) const {
if (busted) {
return;
}
fprintf(file, "%s\n", sz);
}
void dump(bool flush = false) const {
if (busted) {
return;
}
LightSymbol::GetCallStack(sz, 100000, " >- ");
appendLine(sz);
i--;
if (i < 0 || flush) {
i = 100;
fflush(file);
}
}
};