CppPlugins/src/main/cpp/src/plugin.cpp

55 lines
1.0 KiB
C++

#include <plugin.h>
#include <iostream>
#include <execinfo.h> //backtrace
#define STACKTRACEBUFFER 100
namespace Plugin {
void CppPlugin::onLoad(JNIEnv*) {
}
void CppPlugin::onEnable(JNIEnv*) {
}
void CppPlugin::onDisable(JNIEnv*) {
}
std::map<std::string, eventfptr> CppPlugin::getEvents() {
//std::cout << "Defaults::getEvents()" << std::endl;
return std::map<std::string, eventfptr>();
}
CppPlugin::~CppPlugin() {
}
void CppPlugin::printStacktrace() {
//create stacktrace
void *buffer[STACKTRACEBUFFER];
int count = backtrace(buffer, STACKTRACEBUFFER)-1; //dont print current frame
std::cout << "Plugin: " << name << " Creating Stacktrace: ";
std::cout << count << " Frames traced\n";
char** strings = nullptr;
strings = backtrace_symbols(buffer+1, count);
if(strings == nullptr) {
std::cout << "Error, could not read symbols - compiled with \"-g\"?" << std::endl;
} else {
for(int i = 0; i < count; i++) {
std::cout << strings[i] << "\n";
}
free(strings);
std::cout << std::endl;
}
}
} //namespace