mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-23 11:39:26 +08:00
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.
This commit is contained in:

committed by
Vladimir Mezentsev

parent
2e2a82421a
commit
408520bcaa
@ -5406,7 +5406,8 @@ sub generate_dis_html
|
|||||||
|
|
||||||
$dis_regex = '^(#{2}|\s{2})\s+';
|
$dis_regex = '^(#{2}|\s{2})\s+';
|
||||||
$dis_regex .= '(.*)';
|
$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, "metric_regex = $metric_regex");
|
||||||
gp_message ("debugXL", $subr_name, "dis_regex = $dis_regex");
|
gp_message ("debugXL", $subr_name, "dis_regex = $dis_regex");
|
||||||
@ -5475,15 +5476,22 @@ sub generate_dis_html
|
|||||||
|
|
||||||
if ( $input_line =~ /$dis_regex/ )
|
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
|
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;
|
$hot_line = $1;
|
||||||
$metric_values = $2;
|
$metric_values = $2;
|
||||||
$src_line = $3;
|
$src_line = $3;
|
||||||
$dec_instr_address = bigint::hex ($4);
|
$dec_instr_address = bigint::hex ($4);
|
||||||
$instruction = $5;
|
$instruction = $5;
|
||||||
|
if (defined ($6))
|
||||||
|
{
|
||||||
|
my $white_space_regex = '\s*';
|
||||||
$operands = $6;
|
$operands = $6;
|
||||||
|
$operands =~ s/$white_space_regex//;
|
||||||
|
}
|
||||||
|
|
||||||
if ($hot_line eq "##")
|
if ($hot_line eq "##")
|
||||||
{
|
{
|
||||||
@ -5550,15 +5558,23 @@ sub generate_dis_html
|
|||||||
my $input_line = $disassembly_file[$line_no];
|
my $input_line = $disassembly_file[$line_no];
|
||||||
if ( $input_line =~ /$dis_regex/ )
|
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
|
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;
|
$hot_line = $1;
|
||||||
$metric_values = $2;
|
$metric_values = $2;
|
||||||
$src_line = $3;
|
$src_line = $3;
|
||||||
$dec_instr_address = bigint::hex ($4);
|
$dec_instr_address = bigint::hex ($4);
|
||||||
$instruction = $5;
|
$instruction = $5;
|
||||||
|
## $operands = $6;
|
||||||
|
if (defined ($6))
|
||||||
|
{
|
||||||
|
my $white_space_regex = '\s*';
|
||||||
$operands = $6;
|
$operands = $6;
|
||||||
|
$operands =~ s/$white_space_regex//;
|
||||||
|
}
|
||||||
|
|
||||||
if (defined ($dec_instruction_start))
|
if (defined ($dec_instruction_start))
|
||||||
{
|
{
|
||||||
@ -5610,8 +5626,9 @@ sub generate_dis_html
|
|||||||
if ( $input_line =~ /$dis_regex/ )
|
if ( $input_line =~ /$dis_regex/ )
|
||||||
{
|
{
|
||||||
gp_message ("debugXL", $subr_name, "found a disassembly line: $input_line");
|
gp_message ("debugXL", $subr_name, "found a disassembly line: $input_line");
|
||||||
|
|
||||||
if ( defined ($1) and defined ($2) and defined ($3) and
|
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;
|
# $branch_target{$hex_branch_target} = 1;
|
||||||
# $extended_branch_target{$instruction_address} = $raw_hex_branch_target;
|
# $extended_branch_target{$instruction_address} = $raw_hex_branch_target;
|
||||||
@ -5620,9 +5637,17 @@ sub generate_dis_html
|
|||||||
$src_line = $3;
|
$src_line = $3;
|
||||||
$orig_hex_instr_address = $4;
|
$orig_hex_instr_address = $4;
|
||||||
$instruction = $5;
|
$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.
|
# Pad the line with the metrics to ensure correct alignment.
|
||||||
|
Reference in New Issue
Block a user