Enable source debugging feature for windows platform (#910)

- use platform independent data types in debug-engine library
- add os_socket APIs and provide windows and posix implementation
- avoid using platform related header files in non-platform layer
- use format specifiers macros for sprintf and sscanf
- change thread handle type from uint64 to korp_tid
- add lock when sending socket packet to avoid thread racing
This commit is contained in:
Xu Jun
2021-12-22 19:52:07 +08:00
committed by GitHub
parent af251e45ca
commit ccb2de35d7
21 changed files with 851 additions and 316 deletions

View File

@ -87,7 +87,7 @@ WASMDebugInstance *
wasm_exec_env_get_instance(WASMExecEnv *exec_env);
bool
wasm_debug_engine_init(char *ip_addr, int platform_port, int process_port);
wasm_debug_engine_init(char *ip_addr, int32 platform_port, int32 process_port);
void
wasm_debug_engine_destroy();
@ -101,15 +101,15 @@ wasm_debug_get_engine_active(void);
uint64
wasm_debug_instance_get_pid(WASMDebugInstance *instance);
uint64
korp_tid
wasm_debug_instance_get_tid(WASMDebugInstance *instance);
int
wasm_debug_instance_get_tids(WASMDebugInstance *instance, uint64 tids[],
int len);
uint32
wasm_debug_instance_get_tids(WASMDebugInstance *instance, korp_tid tids[],
uint32 len);
void
wasm_debug_instance_set_cur_thread(WASMDebugInstance *instance, uint64 tid);
wasm_debug_instance_set_cur_thread(WASMDebugInstance *instance, korp_tid tid);
uint64
wasm_debug_instance_get_pc(WASMDebugInstance *instance);
@ -140,9 +140,9 @@ bool
wasm_debug_instance_set_mem(WASMDebugInstance *instance, uint64 addr, char *buf,
uint64 *size);
int
wasm_debug_instance_get_call_stack_pcs(WASMDebugInstance *instance, uint64 tid,
uint64 buf[], uint64 size);
uint32
wasm_debug_instance_get_call_stack_pcs(WASMDebugInstance *instance,
korp_tid tid, uint64 buf[], uint64 size);
bool
wasm_debug_instance_add_breakpoint(WASMDebugInstance *instance, uint64 addr,
@ -158,33 +158,34 @@ wasm_debug_instance_continue(WASMDebugInstance *instance);
bool
wasm_debug_instance_kill(WASMDebugInstance *instance);
uint64
wasm_debug_instance_wait_thread(WASMDebugInstance *instance, uint64 tid,
korp_tid
wasm_debug_instance_wait_thread(WASMDebugInstance *instance, korp_tid tid,
uint32 *status);
uint32
wasm_debug_instance_get_thread_status(WASMDebugInstance *instance, uint64 tid);
wasm_debug_instance_get_thread_status(WASMDebugInstance *instance,
korp_tid tid);
bool
wasm_debug_instance_singlestep(WASMDebugInstance *instance, uint64 tid);
wasm_debug_instance_singlestep(WASMDebugInstance *instance, korp_tid tid);
bool
wasm_debug_instance_get_local(WASMDebugInstance *instance, int frame_index,
int local_index, char buf[], int *size);
wasm_debug_instance_get_local(WASMDebugInstance *instance, int32 frame_index,
int32 local_index, char buf[], int32 *size);
bool
wasm_debug_instance_get_global(WASMDebugInstance *instance, int frame_index,
int global_index, char buf[], int *size);
wasm_debug_instance_get_global(WASMDebugInstance *instance, int32 frame_index,
int32 global_index, char buf[], int32 *size);
#if WASM_ENABLE_LIBC_WASI != 0
bool
wasm_debug_instance_get_current_object_name(WASMDebugInstance *instance,
char name_buffer[], int len);
char name_buffer[], uint32 len);
#endif
uint64
wasm_debug_instance_mmap(WASMDebugInstance *instance, uint32 size,
int map_port);
int32 map_port);
bool
wasm_debug_instance_ummap(WASMDebugInstance *instance, uint64 addr);