Skip to content

Commit 3a82116

Browse files
committed
refactor project structure, protocol, cmakelists
1 parent a57813c commit 3a82116

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+920
-1275
lines changed

emmy_core/CMakeLists.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.11)
1+
cmake_minimum_required(VERSION 3.14)
22

33
project (emmy_core)
44

@@ -13,13 +13,12 @@ option(EMMY_USE_LUA_SOURCE "Build with lua source" OFF)
1313

1414
set_target_properties(emmy_core PROPERTIES PREFIX "")
1515

16-
target_include_directories(emmy_core PUBLIC
17-
${emmy_SOURCE_DIR}/include
16+
target_include_directories(emmy_core
1817
PRIVATE src
1918
)
2019

2120
target_sources(emmy_core PRIVATE
22-
${emmy_core_SOURCE_DIR}/src/emmy_core.cpp
21+
src/emmy_core.cpp
2322
)
2423

2524
target_link_libraries(

emmy_core/src/emmy_core.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
//#define EMMY_CORE_VERSION "1.0.0"
18-
#include "emmy_debugger/emmy_debugger_lib.h"
17+
#include "emmy_debugger/debugger/emmy_debugger_lib.h"
1918
#include "emmy_debugger/emmy_facade.h"
2019
#ifdef _MSC_VER
2120
#define EMMY_CORE_EXPORT __declspec(dllexport)

emmy_debugger/CMakeLists.txt

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.11)
1+
cmake_minimum_required(VERSION 3.14)
22

33
project (emmy_debugger)
44

@@ -10,7 +10,7 @@ add_dependencies(
1010
)
1111

1212
target_include_directories(emmy_debugger PUBLIC
13-
${emmy_SOURCE_DIR}/include
13+
${emmy_debugger_SOURCE_DIR}/include
1414
${emmy_SOURCE_DIR}/third-party/nlohmann/include
1515
${emmy_SOURCE_DIR}/third-party/libuv-1.29.0/include
1616
PRIVATE src
@@ -19,26 +19,33 @@ target_include_directories(emmy_debugger PUBLIC
1919
target_sources(emmy_debugger
2020
PRIVATE
2121
#src/api
22-
${emmy_debugger_SOURCE_DIR}/src/api/lua_api.cpp
23-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state.cpp
22+
src/api/lua_api.cpp
23+
src/api/lua_state.cpp
24+
src/api/lua_version.cpp
25+
26+
#src/transporter
27+
src/transporter/pipeline_client_transporter.cpp
28+
src/transporter/pipeline_server_transporter.cpp
29+
src/transporter/socket_client_transporter.cpp
30+
src/transporter/socket_server_transporter.cpp
31+
src/transporter/transporter.cpp
32+
33+
#src/debugger
34+
src/debugger/emmy_debugger.cpp
35+
src/debugger/emmy_debugger_manager.cpp
36+
src/debugger/emmy_debugger_lib.cpp
37+
src/debugger/hook_state.cpp
38+
src/debugger/extension_point.cpp
2439

2540
#src/proto
26-
${emmy_debugger_SOURCE_DIR}/src/proto/pipeline_client_transporter.cpp
27-
${emmy_debugger_SOURCE_DIR}/src/proto/pipeline_server_transporter.cpp
28-
${emmy_debugger_SOURCE_DIR}/src/proto/socket_client_transporter.cpp
29-
${emmy_debugger_SOURCE_DIR}/src/proto/socket_server_transporter.cpp
41+
src/proto/proto.cpp
42+
43+
#src/arena
44+
src/arena/arena.cpp
3045

3146
#src
32-
${emmy_debugger_SOURCE_DIR}/src/emmy_debugger.cpp
33-
${emmy_debugger_SOURCE_DIR}/src/emmy_debugger_manager.cpp
34-
${emmy_debugger_SOURCE_DIR}/src/emmy_facade.cpp
35-
${emmy_debugger_SOURCE_DIR}/src/emmy_debugger_lib.cpp
36-
${emmy_debugger_SOURCE_DIR}/src/hook_state.cpp
37-
${emmy_debugger_SOURCE_DIR}/src/stack.cpp
38-
${emmy_debugger_SOURCE_DIR}/src/transporter.cpp
39-
${emmy_debugger_SOURCE_DIR}/src/lua_version.cpp
40-
${emmy_debugger_SOURCE_DIR}/src/extension_point.cpp
41-
${emmy_debugger_SOURCE_DIR}/src/util.cpp
47+
src/emmy_facade.cpp
48+
src/util.cpp
4249
)
4350

4451

@@ -66,7 +73,7 @@ if(EMMY_USE_LUA_SOURCE)
6673
)
6774
target_sources(emmy_debugger
6875
PRIVATE
69-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_jit.cpp
76+
src/api/lua_state/lua_state_jit.cpp
7077
)
7178
else()
7279
add_dependencies(emmy_debugger lua${EMMY_LUA_VERSION})
@@ -76,7 +83,7 @@ if(EMMY_USE_LUA_SOURCE)
7683
)
7784
target_sources(emmy_debugger
7885
PRIVATE
79-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_${EMMY_LUA_VERSION}.cpp
86+
src/api/lua_state/lua_state_${EMMY_LUA_VERSION}.cpp
8087
)
8188
endif()
8289

@@ -87,7 +94,7 @@ elseif(EMMY_COMPILE_AS_LIB)
8794
target_compile_definitions(emmy_debugger PUBLIC -DEMMY_USE_LUA_SOURCE)
8895
target_sources(emmy_debugger
8996
PRIVATE
90-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_${EMMY_LUA_VERSION}.cpp
97+
src/api/lua_state/lua_state_${EMMY_LUA_VERSION}.cpp
9198
)
9299
else()
93100
target_include_directories(emmy_debugger PRIVATE
@@ -96,15 +103,14 @@ else()
96103

97104
target_sources(emmy_debugger
98105
PUBLIC
99-
${emmy_SOURCE_DIR}/include/emmy_debugger/api/lua_api_loader.h
100-
${emmy_debugger_SOURCE_DIR}/src/api/lua_api_loader.cpp
106+
src/api/lua_api_loader.cpp
101107

102108
PRIVATE
103-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_54.cpp
104-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_53.cpp
105-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_52.cpp
106-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_51.cpp
107-
${emmy_debugger_SOURCE_DIR}/src/api/lua_state/lua_state_jit.cpp
109+
src/api/lua_state/lua_state_54.cpp
110+
src/api/lua_state/lua_state_53.cpp
111+
src/api/lua_state/lua_state_52.cpp
112+
src/api/lua_state/lua_state_51.cpp
113+
src/api/lua_state/lua_state_jit.cpp
108114
)
109115

110116
endif(EMMY_USE_LUA_SOURCE)
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#pragma once
2+
3+
#include <cinttypes>
4+
#include <vector>
5+
#include <exception>
6+
7+
template<class T>
8+
class Arena;
9+
10+
11+
12+
template<class T>
13+
struct Idx {
14+
using ArenaClass = Arena<T>;
15+
16+
Idx()
17+
: Raw(0), _arena(nullptr) {
18+
}
19+
20+
Idx(uint32_t raw, ArenaClass *arena)
21+
: Raw(raw),
22+
_arena(arena) {
23+
}
24+
25+
T &operator*() {
26+
return _arena->Index(*this);
27+
}
28+
29+
T *operator->() {
30+
return &(_arena->Index(*this));
31+
}
32+
33+
34+
ArenaClass *GetArena() {
35+
return _arena;
36+
}
37+
38+
uint32_t Raw;
39+
40+
private:
41+
ArenaClass *_arena;
42+
};
43+
44+
template<class T>
45+
class Arena {
46+
public:
47+
T &Index(Idx<T> id) {
48+
if (id.Raw < _data.size()) {
49+
return _data[id.Raw];
50+
}
51+
throw std::exception("index out of range");
52+
}
53+
54+
Idx<T> Alloc() {
55+
uint32_t rawId = static_cast<uint32_t>(_data.size());
56+
_data.emplace_back();
57+
return Idx<T>(rawId, this);
58+
}
59+
60+
void Clear() {
61+
_data.clear();
62+
}
63+
64+
private:
65+
std::vector<T> _data;
66+
};

include/emmy_debugger/emmy_debugger.h renamed to emmy_debugger/include/emmy_debugger/debugger/emmy_debugger.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
#include <memory>
2424
#include <set>
2525

26-
#include "api/lua_api.h"
27-
#include "emmy_debugger/hook_state.h"
28-
#include "types.h"
26+
#include "emmy_debugger/api/lua_api.h"
27+
#include "hook_state.h"
28+
#include "emmy_debugger/proto/proto.h"
29+
#include "emmy_debugger/arena/arena.h"
2930

30-
using StackAllocatorCB = std::shared_ptr<Stack> (*)();
3131
using Executor = std::function<void(lua_State* L)>;
3232
class EmmyDebuggerManager;
3333

@@ -68,8 +68,8 @@ class Debugger : public std::enable_shared_from_this<Debugger>
6868
*/
6969
void AsyncDoString(const std::string& code);
7070
bool Eval(std::shared_ptr<EvalContext> evalContext, bool force = false);
71-
bool GetStacks(std::vector<std::shared_ptr<Stack>>& stacks);
72-
void GetVariable(lua_State* L, std::shared_ptr<Variable> variable, int index, int depth, bool queryHelper = true);
71+
bool GetStacks(std::vector<Stack>& stacks);
72+
void GetVariable(lua_State* L, Idx<Variable> variable, int index, int depth, bool queryHelper = true);
7373
void DoAction(DebugAction action);
7474
void EnterDebugMode();
7575
void ExitDebugMode();
@@ -102,7 +102,7 @@ class Debugger : public std::enable_shared_from_this<Debugger>
102102
// 模糊匹配算法会算出匹配度
103103
// 当多个文件路径都有可能命中应该采用匹配度最高的路径
104104
int FuzzyMatchFileName(const std::string& chunkName, const std::string& fileName) const;
105-
void CacheValue(int valueIndex, std::shared_ptr<Variable> variable) const;
105+
void CacheValue(int valueIndex, Idx<Variable> variable) const;
106106
// bool HasCacheValue(int valueIndex) const;
107107
void ClearCache() const;
108108

@@ -130,5 +130,5 @@ class Debugger : public std::enable_shared_from_this<Debugger>
130130
std::mutex evalMtx;
131131
std::queue<std::shared_ptr<EvalContext>> evalQueue;
132132

133-
133+
Arena<Variable> _variableArena;
134134
};

include/emmy_debugger/emmy_debugger_lib.h renamed to emmy_debugger/include/emmy_debugger/debugger/emmy_debugger_lib.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22

3-
#include "api/lua_api.h"
4-
#include "types.h"
3+
#include "emmy_debugger/api/lua_api.h"
4+
#include "emmy_debugger/proto/proto.h"
55

66
bool query_variable(lua_State* L, std::shared_ptr<Variable> variable, const char* typeName, int object, int depth);
77

0 commit comments

Comments
 (0)