choose experiments instead of builds for radare/objdump/wasm-objdump actions
This commit is contained in:
125
scripts/menu.pl
125
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 <address> - Seek to address";
|
||||||
|
say "pd <n> - Disassemble n instructions";
|
||||||
|
say "pdf - Disassemble current function";
|
||||||
|
say "pdf @ <function> - 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 @db_names = Mars::db_list();
|
||||||
my @selected_dbs =
|
my @selected_dbs =
|
||||||
@ -316,7 +370,7 @@ my %handlers = (
|
|||||||
"--port=$resultbrowser_port" );
|
"--port=$resultbrowser_port" );
|
||||||
},
|
},
|
||||||
|
|
||||||
'16. Open Database in LazySQL (Mars)' => sub {
|
'19. Open Database in LazySQL (Mars)' => sub {
|
||||||
my $experiment =
|
my $experiment =
|
||||||
Util::select_experiment(0) =~ s/T(\d\d)-(\d\d)-(\d\d)/T$1:$2:$3/r;
|
Util::select_experiment(0) =~ s/T(\d\d)-(\d\d)-(\d\d)/T$1:$2:$3/r;
|
||||||
my $ssh = Mars::ssh_connect();
|
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 <address> - Seek to address";
|
|
||||||
say "pd <n> - Disassemble n instructions";
|
|
||||||
say "pdf - Disassemble current function";
|
|
||||||
say "pdf @ <function> - 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 {
|
'30. Plot Results' => sub {
|
||||||
|
|
||||||
# Generate R ggplot2 charts
|
# Generate R ggplot2 charts
|
||||||
|
|||||||
Reference in New Issue
Block a user