| 388 | } |
| 389 | |
| 390 | void EmmyFacade::Attach(lua_State *L) { |
| 391 | if (!this->transporter->IsConnected()) |
| 392 | return; |
| 393 | |
| 394 | // 这里存在一个问题就是 hook 的时机太早了,globalstate 都还没初始化完毕 |
| 395 | |
| 396 | if (!isAPIReady) { |
| 397 | // 考虑到emmy_hook use lua source |
| 398 | isAPIReady = install_emmy_debugger(L); |
| 399 | } |
| 400 | |
| 401 | lua_sethook(L, EmmyFacade::HookLua, LUA_MASKCALL | LUA_MASKLINE | LUA_MASKRET, 0); |
| 402 | } |
| 403 | |
| 404 | bool EmmyFacade::RegisterTypeName(lua_State *L, const std::string &typeName, std::string &err) { |
| 405 | auto debugger = GetDebugger(L); |
no test coverage detected