From: Brendan Hansen Date: Wed, 14 Dec 2022 23:46:38 +0000 (-0600) Subject: code cleanup in debugger X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=531f360d76c4dc6f1ac060035f635dbfc4a7550a;p=onyx.git code cleanup in debugger --- diff --git a/compiler/src/wasm_output.h b/compiler/src/wasm_output.h index b6e06144..4d1e4b20 100644 --- a/compiler/src/wasm_output.h +++ b/compiler/src/wasm_output.h @@ -952,8 +952,7 @@ static i32 output_ovm_debug_sections(OnyxWasmModule* module, bh_buffer* buff) { AstEnumValue *ev = *pev; output_unsigned_integer(get_expression_integer_value(ev->value, NULL), §ion_buff); - output_unsigned_integer(ev->token->length, §ion_buff); - bh_buffer_append(§ion_buff, ev->token->text, ev->token->length); + output_name(ev->token->text, ev->token->length, §ion_buff); } continue; } @@ -971,6 +970,12 @@ static i32 output_ovm_debug_sections(OnyxWasmModule* module, bh_buffer* buff) { continue; } + if (type->kind == Type_Kind_DynArray) { + output_unsigned_integer(7, §ion_buff); + output_unsigned_integer(type->DynArray.elem->id, §ion_buff); + continue; + } + if (type_is_structlike_strict(type)) { output_unsigned_integer(3, §ion_buff); diff --git a/interpreter/src/debug/debug_runtime_values.c b/interpreter/src/debug/debug_runtime_values.c index 7d383c5c..25683454 100644 --- a/interpreter/src/debug/debug_runtime_values.c +++ b/interpreter/src/debug/debug_runtime_values.c @@ -4,6 +4,8 @@ #include +#define MAX_SLICE_LENGTH 64 + static char write_buf[4096]; #define WRITE(str) do { \ @@ -188,8 +190,8 @@ static void append_slice_from_memory(debug_runtime_value_builder_t *builder, voi debug_type_info_t *elem_type = &builder->info->types[type_id]; b32 count_overflowed = 0; - if (count > 256) { - count = 256; + if (count > MAX_SLICE_LENGTH) { + count = MAX_SLICE_LENGTH; count_overflowed = 1; } @@ -417,6 +419,10 @@ static u32 get_subvalues_for_type(debug_runtime_value_builder_t *builder, u32 ty count = *ptr_loc; } + if (count > MAX_SLICE_LENGTH * 4) { + count = MAX_SLICE_LENGTH * 4; + } + return count; } } @@ -577,8 +583,6 @@ bool debug_runtime_value_build_step(debug_runtime_value_builder_t *builder) { builder->it_type = type->modifier.modified_type; builder->it_has_children = get_subvalues_for_type(builder, builder->it_type) > 0; - // builder->it_loc_kind = debug_sym_loc_global; - // builder->it_loc = builder->base_loc; if (builder->base_loc_kind == debug_sym_loc_register) { ovm_value_t value; if (lookup_register_in_frame(builder->ovm_state, builder->ovm_frame, builder->base_loc, &value)) { @@ -609,10 +613,7 @@ bool debug_runtime_value_build_step(debug_runtime_value_builder_t *builder) { if (type->kind == debug_type_kind_structure) { debug_type_structure_member_t *mem = &type->structure.members[builder->it_index]; - snprintf(tmp_buffer, 2048, "%s", mem->name); - strncpy(name_buffer, tmp_buffer, 2048); - - builder->it_name = name_buffer; + builder->it_name = mem->name; builder->it_has_children = get_subvalues_for_type(builder, mem->type) > 0; builder->it_type = mem->type; diff --git a/interpreter/src/debug/debug_thread.c b/interpreter/src/debug/debug_thread.c index d613fdd9..40ffd16b 100644 --- a/interpreter/src/debug/debug_thread.c +++ b/interpreter/src/debug/debug_thread.c @@ -564,8 +564,11 @@ void *__debug_thread_entry(void * data) { } } - send(debug->client_fd, debug->send_buffer.data, debug->send_buffer.length, 0); - bh_buffer_clear(&debug->send_buffer); + if (debug->send_buffer.length > 0) { + send(debug->client_fd, &debug->send_buffer.length, sizeof(i32), 0); + send(debug->client_fd, debug->send_buffer.data, debug->send_buffer.length, 0); + bh_buffer_clear(&debug->send_buffer); + } bh_arena_clear(&debug->tmp_arena); } diff --git a/misc/vscode/package.json b/misc/vscode/package.json index d4733bbb..ba240183 100644 --- a/misc/vscode/package.json +++ b/misc/vscode/package.json @@ -2,7 +2,7 @@ "name": "onyx", "displayName": "Onyx", "description": "Onyx syntax highlighting.", - "version": "0.1.0", + "version": "0.1.1", "publisher": "brendanfh", "license": "BSD-2-Clause", "engines": { diff --git a/shared/lib/linux_x86_64/lib/libovmwasm.so b/shared/lib/linux_x86_64/lib/libovmwasm.so index 1ff06037..7d688d2e 100755 Binary files a/shared/lib/linux_x86_64/lib/libovmwasm.so and b/shared/lib/linux_x86_64/lib/libovmwasm.so differ