#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(std::shared_ptr > > breakpoints, const boost::filesystem::path &executable, const boost::filesystem::path &path="", std::function callback=nullptr, std::function status_callback=nullptr, std::function stop_callback=nullptr); void continue_debug(); //can't use continue as function name void stop(); void kill(); std::string get_value(const std::string &variable); private: lldb::SBDebugger debugger; std::unique_ptr process; std::atomic stopped; }; #endif