History

Fix bug in entry stack frame. - The frame marked the callee stack frame for memory mangement. - Stack frames are _not_ managed by the normal DisVM memory manager. Reorganized logging flags for exec.

arr committed 9 years ago

Commit 75d434e1 parent dd0789c1 file · +12 −9Browse files

Showing the changes to src/exec/main.cpp (1 of 1 file). Show all

Unified · Split

src/exec/main.cpp+12−9
@@ -32,10 +32,10 @@ namespace · 31 unmodified lines
32 {32 {
33 word_t noret;33 word_t noret;
34 pointer_t command_module_ref;34 pointer_t command_module_ref;
35 pointer_t command_stack_frame;35 pointer_t command_stack_frame; // Should not be marked as memory managed pointer field
36 };36 };
37 37
38 const auto entry_frame_pointer_map = std::vector<byte_t>{ 0x06 };38 const auto entry_frame_pointer_map = std::vector<byte_t>{ 0x04 };
39 39
40 std::shared_ptr<const vm_module_t> command_module;40 std::shared_ptr<const vm_module_t> command_module;
41 41
@@ -231,17 +231,18 @@ void print_banner(const exec_options &options) · 189 unmodified lines
231void print_help()231void print_help()
232{232{
233 std::cout233 std::cout
234 << "Usage: disvm-exec [-d[e|m|x]*] [-l[s|g|t|T|e|m]*] [-t <num>] [-q] [-?] <entry module> <args>*\n"234 << "Usage: disvm-exec [-d[e|m|x]*] [-l[s|S|t|T|e|g|m]*] [-t <num>] [-q] [-?] <entry module> <args>*\n"
235 " d - Enable debugger\n"235 " d - Enable debugger\n"
236 " e - Break on entry\n"236 " e - Break on entry\n"
237 " m - Break on module load\n"237 " m - Break on module load\n"
238 " x - Break on exception (first chance)\n"238 " x - Break on exception (first chance)\n"
239 " l - Enable logging in a component\n"239 " l - Enable logging in a component\n"
240 " s - Scheduler\n"240 " s - Scheduler\n"
241 " g - Garbage collector\n"241 " S - Stack\n"
242 " t - Tool extensions\n"242 " t - Threads\n"
243 " T - Threads\n"243 " T - Tool extensions\n"
244 " e - Exceptions\n"244 " e - Exceptions\n"
245 " g - Garbage collector (noisy)\n"
245 " m - Memory allocations (noisy)\n"246 " m - Memory allocations (noisy)\n"
246 " q - Suppress banner and configuration\n"247 " q - Suppress banner and configuration\n"
247 " t - Specify the number of system threads to use (0 < x <= 4)\n"248 " t - Specify the number of system threads to use (0 < x <= 4)\n"
@@ -336,14 +337,16 @@ void process_arg(char* arg, std::function<char *()> next, exec_options &options) · 88 unmodified lines
336 {337 {
337 case 's': enable_logging(debug::component_trace_t::scheduler);338 case 's': enable_logging(debug::component_trace_t::scheduler);
338 break;339 break;
339 case 'g': enable_logging(debug::component_trace_t::garbage_collector);340 case 'S': enable_logging(debug::component_trace_t::stack);
340 break;341 break;
341 case 't': enable_logging(debug::component_trace_t::tool);342 case 't': enable_logging(debug::component_trace_t::thread);
342 break;343 break;
343 case 'T': enable_logging(debug::component_trace_t::thread);344 case 'T': enable_logging(debug::component_trace_t::tool);
344 break;345 break;
345 case 'e': enable_logging(debug::component_trace_t::exception);346 case 'e': enable_logging(debug::component_trace_t::exception);
346 break;347 break;
348 case 'g': enable_logging(debug::component_trace_t::garbage_collector);
349 break;
347 case 'm': enable_logging(debug::component_trace_t::memory);350 case 'm': enable_logging(debug::component_trace_t::memory);
348 break;351 break;
349 }352 }