diff --git a/scripts/menu.pl b/scripts/menu.pl
index 28e240f..0ba0399 100644
--- a/scripts/menu.pl
+++ b/scripts/menu.pl
@@ -300,7 +300,61 @@ my %handlers = (
);
},
- '15. Open Database in ResultBrowser (Mars)' => sub {
+ '15. Run Objdump on Experiment' => sub {
+ my $selected_experiment = Util::select_experiment(0);
+
+ system(
+"objdump $local_archive_dir/$selected_experiment/system.elf -D -M intel -S | bat --color never"
+ );
+ },
+
+ '16. Run Wasm-Objdump on Experiment' => sub {
+ my $selected_experiment = Util::select_experiment(0);
+
+ system(
+"wasm-objdump -d $local_archive_dir/$selected_experiment/wasm_module.wasm | bat --color never"
+ );
+ },
+
+ '17. Run Radare2 on Experiment' => sub {
+ my $selected_experiment = Util::select_experiment(0);
+
+ say "Radare help:";
+ say "s
- Seek to address";
+ say "pd - Disassemble n instructions";
+ say "pdf - Disassemble current function";
+ say "pdf @ - Disassemble function";
+ say "pdr - Disassemble recursively";
+ say "V - Switch view";
+ say "p - Switch print mode";
+ say "P - Switch layout";
+ system(
+ 'radare2', '-AA',
+ '-c', '"-s dbg.os_main"',
+ '-e', 'scr.color=3',
+ '-e', 'scr.scrollbar=0',
+ '-e', 'scr.responsive=true',
+ '-e', 'scr.interactive=true',
+ '-e', 'scr.utf8=true',
+ '-e', 'scr.utf8.curvy=true',
+ '-e', 'asm.syntax=intel',
+ '-e', 'asm.lines=false',
+ '-e', 'asm.xrefs=true',
+ '-e', 'asm.flags=true',
+ '-e', 'asm.comments=true',
+ '-e', 'asm.functions=true',
+ '-e', 'asm.var=true',
+ '-e', 'asm.cmt.right=true',
+ '-e', 'asm.dwarf=true',
+ '-e', 'asm.pseudo=false',
+ '-e', 'asm.describe=false',
+ '-e', 'bin.relocs.apply=true',
+ "$local_archive_dir/$selected_experiment/system.elf",
+
+ );
+ },
+
+ '18. Open Database in ResultBrowser (Mars)' => sub {
my @db_names = Mars::db_list();
my @selected_dbs =
@@ -316,7 +370,7 @@ my %handlers = (
"--port=$resultbrowser_port" );
},
- '16. Open Database in LazySQL (Mars)' => sub {
+ '19. Open Database in LazySQL (Mars)' => sub {
my $experiment =
Util::select_experiment(0) =~ s/T(\d\d)-(\d\d)-(\d\d)/T$1:$2:$3/r;
my $ssh = Mars::ssh_connect();
@@ -364,73 +418,6 @@ my %handlers = (
);
},
- '21. Run Objdump on Build' => sub {
- my @builds = Util::find_subdirs($local_builds_dir);
- my @selected_builds =
- TUI::select_from_list( "Select Build to Objdump", 0, @builds );
- die "No build selected" unless @selected_builds;
- my $selected_build = $selected_builds[0];
-
- my $build_dir = "$local_builds_dir/$selected_build";
- system(
- "objdump $build_dir/system.elf -D -M intel -S | bat --color never");
- },
-
- '22. Run Wasm-Objdump on Build' => sub {
- my @builds = Util::find_subdirs($local_builds_dir);
- my @selected_builds =
- TUI::select_from_list( "Select Build to Wasm-Objdump", 0, @builds );
- die "No build selected" unless @selected_builds;
- my $selected_build = $selected_builds[0];
-
- my $build_dir = "$local_builds_dir/$selected_build";
- system(
- "wasm-objdump -d $build_dir/wasm_module.wasm | bat --color never");
- },
-
- '23. Run Radare2 on Build' => sub {
- my @builds = Util::find_subdirs($local_builds_dir);
- my @selected_builds =
- TUI::select_from_list( "Select Build to Objdump", 0, @builds );
- die "No build selected" unless @selected_builds;
- my $selected_build = $selected_builds[0];
-
- my $build_dir = "$local_builds_dir/$selected_build";
- say "Radare help:";
- say "s - Seek to address";
- say "pd - Disassemble n instructions";
- say "pdf - Disassemble current function";
- say "pdf @ - Disassemble function";
- say "pdr - Disassemble recursively";
- say "V - Switch view";
- say "p - Switch print mode";
- say "P - Switch layout";
- system(
- 'radare2', '-AA',
- '-c', '"-s dbg.os_main"',
- '-e', 'scr.color=3',
- '-e', 'scr.scrollbar=0',
- '-e', 'scr.responsive=true',
- '-e', 'scr.interactive=true',
- '-e', 'scr.utf8=true',
- '-e', 'scr.utf8.curvy=true',
- '-e', 'asm.syntax=intel',
- '-e', 'asm.lines=false',
- '-e', 'asm.xrefs=true',
- '-e', 'asm.flags=true',
- '-e', 'asm.comments=true',
- '-e', 'asm.functions=true',
- '-e', 'asm.var=true',
- '-e', 'asm.cmt.right=true',
- '-e', 'asm.dwarf=true',
- '-e', 'asm.pseudo=false',
- '-e', 'asm.describe=false',
- '-e', 'bin.relocs.apply=true',
- "$build_dir/system.elf",
-
- );
- },
-
'30. Plot Results' => sub {
# Generate R ggplot2 charts