#ifndef JUCI_DEBUG_H_ #define JUCI_DEBUG_H_ #include #include #include "lldb/API/SBDebugger.h" #include "lldb/API/SBProcess.h" class Debug { private: Debug(); public: static Debug &get() { static Debug singleton; return singleton; } void start(const boost::filesystem::path &project_path, const boost::filesystem::path &executable, const boost::filesystem::path &path="", std::function callback=nullptr); void stop(); void continue_debug(); //can't use continue as function name std::string get_value(const std::string &variable); std::unordered_map > > breakpoints; private: lldb::SBDebugger debugger; std::unique_ptr process; std::atomic stopped; }; #endif