diff --git a/scripts/explore.pl b/scripts/explore.pl index ce2154f..5cdb109 100644 --- a/scripts/explore.pl +++ b/scripts/explore.pl @@ -23,8 +23,8 @@ my $local_archive_dir = "$local_root/injections"; # Select experiment to open my @experiments = Util::find_subdirs($local_archive_dir); my @selected_experiments = - TUI::select_from_list( "Select Archived Experiments to Delete", - 0, @experiments ); + TUI::select_from_list( "Select Archived Experiment to Open", 0, + @experiments ); die "No experiment selected" unless @selected_experiments; my $selected_experiment = $selected_experiments[0]; @@ -60,7 +60,7 @@ my @selected_benchs = @benchs; my %index_of_benchs; @index_of_benchs{@benchs} = 0 .. $#benchs; -my @selected_markers = @markers; +my @selected_markers = ("FAIL_MARKER"); my %index_of_markers; @index_of_markers{@markers} = 0 .. $#markers; @@ -117,7 +117,8 @@ sub filter_marker_values { } # How much to disassemble around the address / how many lines to show -my $region_size = $cui->height() / 2 - 2; +my $region_size = $cui->height() / 2 - 2; +my $asm_region_size = $region_size + 120; my %assembly_cache; @@ -167,8 +168,8 @@ sub load_assembly_elf { if ( !exists $assembly_cache{$address} ) { my $file = "$local_archive_dir/$selected_experiment/system.elf"; - my $start = $address - $region_size - 120; - my $end = $address + $region_size + 120; + my $start = $address - $asm_region_size; + my $end = $address + $asm_region_size; my $objdump_address = lc substr( $marker->{fault_address}, 2 ); @@ -261,16 +262,18 @@ sub load_source_c { my $line = $lines[1]; # Ignore possible further lines my ( $sourcefile, $lineno ) = split ":", $line; ($lineno) = $lineno =~ /^(\d+)/; - $sourcefile = remap_source_path($sourcefile); + my $remapped = remap_source_path($sourcefile); - my $source_region = read_source_file( $sourcefile, $lineno ); + my $source_region = read_source_file( $remapped, $lineno ); if ( !defined $source_region or length($source_region) == 0 ) { - $source_text = "Failed to Read Source: $sourcefile:$lineno"; + $source_text = "Failed to Read Source: $location"; + $source_file = "Unknown"; + $source_line = "Unknown"; return; } $source_cache{$address} = $source_region; - $source_file_cache{$address} = $sourcefile; + $source_file_cache{$address} = $remapped; $source_line_cache{$address} = $lineno; } @@ -283,7 +286,7 @@ sub load_source_c { # UI Layout # ============================================================================= -my $win = $cui->add( 'root', 'Window' ); +my $win = $cui->add( 'explorer', 'Window' ); my $left = $win->add( 'left', 'Container' ); # , -padbottom => 1, my $middle = $win->add( 'middle', 'Container' ); # , -padbottom => 1, @@ -345,7 +348,7 @@ $win->add( 'info', 'Label', -y => -1, -text => -"Space = toggle, F = filter markers, O = open source, P = open assembly, R = resize, Q = quit", +"Space = toggle, F = filter markers, S = open source, A = open assembly, R = resize, Q = quit", ); sub set_geometry { @@ -540,7 +543,7 @@ $win->set_binding( sub { system( 'neovide', '--fork', $source_file, '--', "+$source_line" ); }, - 'o', + 's', ); my $objdump_out; @@ -581,7 +584,7 @@ $win->set_binding( system( 'neovide', '--fork', $temp_file ); } }, - 'p', + 'a', ); $win->set_binding( @@ -603,6 +606,7 @@ $win->set_binding( # ============================================================================= load_faults_csv(); +filter_marker_values(); layout_resize(); $markers_panel->focus(); @@ -610,4 +614,4 @@ $refresh_panels->(); $cui->mainloop(); $cui->leave_curses(); -$cui->delete('root'); +$cui->delete('explorer');