diff options
author | Ruud van der Pas <ruud.vanderpas@oracle.com> | 2022-07-22 06:21:49 -0700 |
---|---|---|
committer | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2022-07-25 15:05:50 -0700 |
commit | 408520bcaa874edb0e37506e8559b2e4194dca05 (patch) | |
tree | ff5b6af040dde6ee83ec14a4e30049cc6f73f74b | |
parent | 2e2a82421ac0c817d433d2698ed29ce84d1f1574 (diff) | |
download | gdb-408520bcaa874edb0e37506e8559b2e4194dca05.zip gdb-408520bcaa874edb0e37506e8559b2e4194dca05.tar.gz gdb-408520bcaa874edb0e37506e8559b2e4194dca05.tar.bz2 |
gprofng: fix bug 29353 - Fix a lay-out issue in the html disassembly files
gprofng/Changelog:
2022-07-22 Ruud van der Pas <ruud.vanderpas@oracle.com>
PR gprofng/29353
* gp-display-html/gp-display-html.in: fixed a problem in the
generation of html for the disassembly where instructions
without arguments were not handled correctly.
-rw-r--r-- | gprofng/gp-display-html/gp-display-html.in | 41 |
1 files changed, 33 insertions, 8 deletions
diff --git a/gprofng/gp-display-html/gp-display-html.in b/gprofng/gp-display-html/gp-display-html.in index 8297be6..a2e629a 100644 --- a/gprofng/gp-display-html/gp-display-html.in +++ b/gprofng/gp-display-html/gp-display-html.in @@ -5406,7 +5406,8 @@ sub generate_dis_html $dis_regex = '^(#{2}|\s{2})\s+'; $dis_regex .= '(.*)'; - $dis_regex .= '\[\s*([0-9?]+)\]\s+([0-9a-fA-F]+):\s+([a-z0-9]+)\s+(.*)'; +## $dis_regex .= '\[\s*([0-9?]+)\]\s+([0-9a-fA-F]+):\s+([a-z0-9]+)\s+(.*)'; + $dis_regex .= '\[\s*([0-9?]+)\]\s+([0-9a-fA-F]+):\s+([a-z0-9]+)(.*)'; gp_message ("debugXL", $subr_name, "metric_regex = $metric_regex"); gp_message ("debugXL", $subr_name, "dis_regex = $dis_regex"); @@ -5475,15 +5476,22 @@ sub generate_dis_html if ( $input_line =~ /$dis_regex/ ) { +## if ( defined ($1) and defined ($2) and defined ($3) and +## defined ($4) and defined ($5) and defined ($6) ) if ( defined ($1) and defined ($2) and defined ($3) and - defined ($4) and defined ($5) and defined ($6) ) + defined ($4) and defined ($5) ) { $hot_line = $1; $metric_values = $2; $src_line = $3; $dec_instr_address = bigint::hex ($4); $instruction = $5; - $operands = $6; + if (defined ($6)) + { + my $white_space_regex = '\s*'; + $operands = $6; + $operands =~ s/$white_space_regex//; + } if ($hot_line eq "##") { @@ -5550,15 +5558,23 @@ sub generate_dis_html my $input_line = $disassembly_file[$line_no]; if ( $input_line =~ /$dis_regex/ ) { +# if ( defined ($1) and defined ($2) and defined ($3) and +## defined ($4) and defined ($5) and defined ($6) ) if ( defined ($1) and defined ($2) and defined ($3) and - defined ($4) and defined ($5) and defined ($6) ) + defined ($4) and defined ($5) ) { $hot_line = $1; $metric_values = $2; $src_line = $3; $dec_instr_address = bigint::hex ($4); $instruction = $5; - $operands = $6; +## $operands = $6; + if (defined ($6)) + { + my $white_space_regex = '\s*'; + $operands = $6; + $operands =~ s/$white_space_regex//; + } if (defined ($dec_instruction_start)) { @@ -5610,8 +5626,9 @@ sub generate_dis_html if ( $input_line =~ /$dis_regex/ ) { gp_message ("debugXL", $subr_name, "found a disassembly line: $input_line"); + if ( defined ($1) and defined ($2) and defined ($3) and - defined ($4) and defined ($5) and defined ($6) ) + defined ($4) and defined ($5) ) { # $branch_target{$hex_branch_target} = 1; # $extended_branch_target{$instruction_address} = $raw_hex_branch_target; @@ -5620,9 +5637,17 @@ sub generate_dis_html $src_line = $3; $orig_hex_instr_address = $4; $instruction = $5; - $operands = $6; +## $operands = $6; - gp_message ("debugXL", $subr_name, "disassembly line: $1 $2 $3 $4 $5 \$6 = $6"); + my $msg = "disassembly line: $1 $2 $3 $4 $5"; + if (defined ($6)) + { + $msg .= " \$6 = $6"; + my $white_space_regex = '\s*'; + $operands = $6; + $operands =~ s/$white_space_regex//; + } + gp_message ("debugXL", $subr_name, $msg); #------------------------------------------------------------------------------ # Pad the line with the metrics to ensure correct alignment. |