add radare/objdump/wasm-objdump actions to menu

This commit is contained in:
2026-04-28 00:17:51 +02:00
parent 5f6537b7ea
commit c87409dd5c

View File

@ -352,11 +352,11 @@ my %handlers = (
}
},
'17. Run Build in GDB' => sub {
'20. Run Build in GDB' => sub {
my @builds = grep { /linux/ } Util::find_subdirs($local_builds_dir);
my @selected_builds =
TUI::select_from_list( "Select Build to Run in GDB", 0, @builds );
die "No experiment selected" unless @selected_builds;
die "No build selected" unless @selected_builds;
my $selected_build = $selected_builds[0];
my $build_dir = "$local_builds_dir/$selected_build";
@ -389,6 +389,73 @@ 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",
);
},
'95. Delete Builds' => sub {
# Delete old build files