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
3232 {
3333 word_t noret;
3434 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
3636 };
3737
38− const auto entry_frame_pointer_map = std::vector<byte_t>{ 0x06 };
38+ const auto entry_frame_pointer_map = std::vector<byte_t>{ 0x04 };
3939
4040 std::shared_ptr<const vm_module_t> command_module;
4141
@@ -231,17 +231,18 @@ void print_banner(const exec_options &options) · 189 unmodified lines
231231 void print_help()
232232 {
233233 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"
235235 " d - Enable debugger\n"
236236 " e - Break on entry\n"
237237 " m - Break on module load\n"
238238 " x - Break on exception (first chance)\n"
239239 " l - Enable logging in a component\n"
240240 " s - Scheduler\n"
241− " g - Garbage collector\n"
242− " t - Tool extensions\n"
243− " T - Threads\n"
241+ " S - Stack\n"
242+ " t - Threads\n"
243+ " T - Tool extensions\n"
244244 " e - Exceptions\n"
245+ " g - Garbage collector (noisy)\n"
245246 " m - Memory allocations (noisy)\n"
246247 " q - Suppress banner and configuration\n"
247248 " 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
336337 {
337338 case 's': enable_logging(debug::component_trace_t::scheduler);
338339 break;
339− case 'g': enable_logging(debug::component_trace_t::garbage_collector);
340+ case 'S': enable_logging(debug::component_trace_t::stack);
340341 break;
341− case 't': enable_logging(debug::component_trace_t::tool);
342+ case 't': enable_logging(debug::component_trace_t::thread);
342343 break;
343− case 'T': enable_logging(debug::component_trace_t::thread);
344+ case 'T': enable_logging(debug::component_trace_t::tool);
344345 break;
345346 case 'e': enable_logging(debug::component_trace_t::exception);
346347 break;
348+ case 'g': enable_logging(debug::component_trace_t::garbage_collector);
349+ break;
347350 case 'm': enable_logging(debug::component_trace_t::memory);
348351 break;
349352 }