#define SOL_ALL_SAFETIES_ON 1 #include #include inline void my_panic(sol::optional maybe_msg) { std::cerr << "Lua is in a panic state and will now abort() " "the application" << std::endl; if (maybe_msg) { const std::string& msg = maybe_msg.value(); std::cerr << "\terror message: " << msg << std::endl; } // When this function exits, Lua will exhibit default // behavior and abort() } int main(int, char*[]) { sol::state lua(sol::c_call); // or, if you already have a lua_State* L // lua_atpanic( L, sol::c_call ); or, with state/state_view: sol::state_view // lua(L); lua.set_panic( sol::c_call ); // uncomment the below to see // lua.script("boom_goes.the_dynamite"); return 0; }