gdb/testsuite/dwarf: simplify line number program syntax

By calling `uplevel $body` in the program proc (a pattern we use at many
places), we can get rid of curly braces around each line number program
directive.  That seems like a nice small improvement to me.

Change-Id: Ib327edcbffbd4c23a08614adee56c12ea25ebc0b
This commit is contained in:
Simon Marchi
2022-04-06 21:51:55 -04:00
parent ae58413816
commit d4c4a2298c
26 changed files with 616 additions and 618 deletions

View File

@ -135,35 +135,35 @@ Dwarf::assemble $asm_file {
# of adding some !is_stmt at the end of a loop line, making until
# not work properly.
program {
{DW_LNE_set_address $main_start}
{line [gdb_get_line_number "TAG: main prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address loop_start}
{line [gdb_get_line_number "TAG: loop line"]}
{DW_LNS_copy}
{DW_LNE_set_address loop_condition}
{line [gdb_get_line_number "TAG: loop line"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
{DW_LNE_set_address loop_code}
{line [gdb_get_line_number "TAG: loop code"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
{DW_LNE_set_address loop_increment}
{line [gdb_get_line_number "TAG: loop line"]}
{DW_LNS_copy}
{DW_LNE_set_address loop_jump}
{line [gdb_get_line_number "TAG: loop line"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
{DW_LNE_set_address main_return}
{line [gdb_get_line_number "TAG: main return"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
{DW_LNE_set_address $main_end}
{line [expr [gdb_get_line_number "TAG: main return"] + 1]}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_start
line [gdb_get_line_number "TAG: main prologue"]
DW_LNS_copy
DW_LNE_set_address loop_start
line [gdb_get_line_number "TAG: loop line"]
DW_LNS_copy
DW_LNE_set_address loop_condition
line [gdb_get_line_number "TAG: loop line"]
DW_LNS_negate_stmt
DW_LNS_copy
DW_LNE_set_address loop_code
line [gdb_get_line_number "TAG: loop code"]
DW_LNS_negate_stmt
DW_LNS_copy
DW_LNE_set_address loop_increment
line [gdb_get_line_number "TAG: loop line"]
DW_LNS_copy
DW_LNE_set_address loop_jump
line [gdb_get_line_number "TAG: loop line"]
DW_LNS_negate_stmt
DW_LNS_copy
DW_LNE_set_address main_return
line [gdb_get_line_number "TAG: main return"]
DW_LNS_negate_stmt
DW_LNS_copy
DW_LNE_set_address $main_end
line [expr [gdb_get_line_number "TAG: main return"] + 1]
DW_LNS_copy
DW_LNE_end_sequence
}
}

View File

@ -127,13 +127,13 @@ Dwarf::assemble $asm_file {
# Line data doens't need to be correct, just present.
program {
{DW_LNE_set_address [lindex $main_result 0]}
{DW_LNS_advance_line 10}
{DW_LNS_copy}
{DW_LNS_advance_pc [lindex $main_result 1]}
{DW_LNS_advance_line 19}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address [lindex $main_result 0]
DW_LNS_advance_line 10
DW_LNS_copy
DW_LNS_advance_pc [lindex $main_result 1]
DW_LNS_advance_line 19
DW_LNS_copy
DW_LNE_end_sequence
}
}
@ -143,13 +143,13 @@ Dwarf::assemble $asm_file {
# Line data doens't need to be correct, just present.
program {
{DW_LNE_set_address some_func}
{DW_LNS_advance_line 5}
{DW_LNS_copy}
{DW_LNS_advance_pc 64}
{DW_LNS_advance_line 8}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address some_func
DW_LNS_advance_line 5
DW_LNS_copy
DW_LNS_advance_pc 64
DW_LNS_advance_line 8
DW_LNS_copy
DW_LNE_end_sequence
}
}
}

View File

@ -68,34 +68,34 @@ Dwarf::assemble $asm_file {
file_name "$srcfile3" 1
program {
{DW_LNE_set_address $main_start}
{DW_LNS_advance_line 15}
{DW_LNS_copy}
DW_LNE_set_address $main_start
DW_LNS_advance_line 15
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_3}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_3
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_5}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_5
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_6}
{DW_LNS_advance_line 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_6
DW_LNS_advance_line 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address $main_end}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_end
DW_LNS_copy
DW_LNE_end_sequence
}
}
}

View File

@ -119,41 +119,41 @@ proc do_test { start_label func_name tag } {
file_name "$srcfile4" 1
program {
{DW_LNE_set_address line_label_1}
{DW_LNS_advance_line 15}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
DW_LNS_advance_line 15
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_set_file 2}
{DW_LNE_set_address line_label_3}
{DW_LNS_advance_line 4}
{DW_LNS_copy}
DW_LNS_set_file 2
DW_LNE_set_address line_label_3
DW_LNS_advance_line 4
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_advance_line -4}
{DW_LNS_set_file 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNS_advance_line -4
DW_LNS_set_file 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNS_set_file 2}
{DW_LNE_set_address line_label_5}
{DW_LNS_advance_line 5}
{DW_LNS_copy}
DW_LNS_set_file 2
DW_LNE_set_address line_label_5
DW_LNS_advance_line 5
DW_LNS_copy
{DW_LNS_negate_stmt}
{DW_LNS_set_file 1}
{DW_LNE_set_address line_label_6}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNS_negate_stmt
DW_LNS_set_file 1
DW_LNE_set_address line_label_6
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNE_set_address line_label_7}
{DW_LNE_end_sequence}
DW_LNE_set_address line_label_7
DW_LNE_end_sequence
}
}
}

View File

@ -109,39 +109,39 @@ Dwarf::assemble $asm_file {
file_name "$srcfile4" 1
program {
{DW_LNE_set_address line_label_1}
{DW_LNS_advance_line 15}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
DW_LNS_advance_line 15
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_set_file 2}
{DW_LNE_set_address line_label_3}
{DW_LNS_advance_line 4}
{DW_LNS_copy}
DW_LNS_set_file 2
DW_LNE_set_address line_label_3
DW_LNS_advance_line 4
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_advance_line -4}
{DW_LNS_set_file 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNS_advance_line -4
DW_LNS_set_file 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_5}
{DW_LNS_advance_line 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_5
DW_LNS_advance_line 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_6}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_6
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNE_set_address line_label_7}
{DW_LNE_end_sequence}
DW_LNE_set_address line_label_7
DW_LNE_end_sequence
}
}
}

View File

@ -98,39 +98,39 @@ Dwarf::assemble $asm_file {
file_name "$srcfile4" 1
program {
{DW_LNE_set_address line_label_1}
{DW_LNS_advance_line 15}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
DW_LNS_advance_line 15
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_set_file 2}
{DW_LNE_set_address line_label_3}
{DW_LNS_advance_line 4}
{DW_LNS_copy}
DW_LNS_set_file 2
DW_LNE_set_address line_label_3
DW_LNS_advance_line 4
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_advance_line -4}
{DW_LNS_set_file 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNS_advance_line -4
DW_LNS_set_file 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_5}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_5
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNE_set_address line_label_6}
{DW_LNS_advance_line 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_6
DW_LNS_advance_line 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_7}
{DW_LNE_end_sequence}
DW_LNE_set_address line_label_7
DW_LNE_end_sequence
}
}
}

View File

@ -187,95 +187,95 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address $main_start}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label}
{line [gdb_get_line_number "main set global_var"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "main call aaa"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "aaa return"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "bbb return"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "ccc return"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label3}
{line [gdb_get_line_number "main end"]}
{DW_LNS_copy}
{DW_LNE_set_address $main_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_start
line [gdb_get_line_number "main prologue"]
DW_LNS_copy
DW_LNE_set_address main_label
line [gdb_get_line_number "main set global_var"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "main call aaa"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "aaa return"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "bbb return"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "ccc return"]
DW_LNS_copy
DW_LNE_set_address main_label3
line [gdb_get_line_number "main end"]
DW_LNS_copy
DW_LNE_set_address $main_end
DW_LNE_end_sequence
{DW_LNE_set_address $ddd_start}
{line [gdb_get_line_number "ddd prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address ddd_label}
{line [gdb_get_line_number "ddd return"]}
{DW_LNS_copy}
{DW_LNE_set_address ddd_label2}
{line [gdb_get_line_number "ddd end"]}
{DW_LNS_copy}
{DW_LNE_set_address $ddd_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $ddd_start
line [gdb_get_line_number "ddd prologue"]
DW_LNS_copy
DW_LNE_set_address ddd_label
line [gdb_get_line_number "ddd return"]
DW_LNS_copy
DW_LNE_set_address ddd_label2
line [gdb_get_line_number "ddd end"]
DW_LNS_copy
DW_LNE_set_address $ddd_end
DW_LNE_end_sequence
{DW_LNE_set_address $eee_start}
{line [gdb_get_line_number "eee prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address eee_label}
{line [gdb_get_line_number "eee return"]}
{DW_LNS_copy}
{DW_LNE_set_address eee_label2}
{line [gdb_get_line_number "eee end"]}
{DW_LNS_copy}
{DW_LNE_set_address $eee_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $eee_start
line [gdb_get_line_number "eee prologue"]
DW_LNS_copy
DW_LNE_set_address eee_label
line [gdb_get_line_number "eee return"]
DW_LNS_copy
DW_LNE_set_address eee_label2
line [gdb_get_line_number "eee end"]
DW_LNS_copy
DW_LNE_set_address $eee_end
DW_LNE_end_sequence
{DW_LNE_set_address $fff_start}
{line [gdb_get_line_number "fff prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address fff_label}
{line [gdb_get_line_number "fff return"]}
{DW_LNS_copy}
{DW_LNE_set_address fff_label}
{line [gdb_get_line_number "ggg return"]}
{DW_LNS_copy}
{DW_LNE_set_address fff_label}
{line [gdb_get_line_number "hhh return"]}
{DW_LNS_copy}
{DW_LNE_set_address fff_label}
{line [gdb_get_line_number "iii return"]}
{DW_LNS_copy}
{DW_LNE_set_address fff_label2}
{line [gdb_get_line_number "fff end"]}
{DW_LNS_copy}
{DW_LNE_set_address $fff_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $fff_start
line [gdb_get_line_number "fff prologue"]
DW_LNS_copy
DW_LNE_set_address fff_label
line [gdb_get_line_number "fff return"]
DW_LNS_copy
DW_LNE_set_address fff_label
line [gdb_get_line_number "ggg return"]
DW_LNS_copy
DW_LNE_set_address fff_label
line [gdb_get_line_number "hhh return"]
DW_LNS_copy
DW_LNE_set_address fff_label
line [gdb_get_line_number "iii return"]
DW_LNS_copy
DW_LNE_set_address fff_label2
line [gdb_get_line_number "fff end"]
DW_LNS_copy
DW_LNE_set_address $fff_end
DW_LNE_end_sequence
{DW_LNE_set_address $jjj_start}
{line [gdb_get_line_number "jjj prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address jjj_label}
{line [gdb_get_line_number "jjj return"]}
{DW_LNS_copy}
{DW_LNE_set_address jjj_label2}
{line [gdb_get_line_number "jjj end"]}
{DW_LNS_copy}
{DW_LNE_set_address $jjj_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $jjj_start
line [gdb_get_line_number "jjj prologue"]
DW_LNS_copy
DW_LNE_set_address jjj_label
line [gdb_get_line_number "jjj return"]
DW_LNS_copy
DW_LNE_set_address jjj_label2
line [gdb_get_line_number "jjj end"]
DW_LNS_copy
DW_LNE_set_address $jjj_end
DW_LNE_end_sequence
{DW_LNE_set_address $kkk_start}
{line [gdb_get_line_number "kkk prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address kkk_label}
{line [gdb_get_line_number "kkk return"]}
{DW_LNS_copy}
{DW_LNE_set_address $kkk_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $kkk_start
line [gdb_get_line_number "kkk prologue"]
DW_LNS_copy
DW_LNE_set_address kkk_label
line [gdb_get_line_number "kkk return"]
DW_LNS_copy
DW_LNE_set_address $kkk_end
DW_LNE_end_sequence
}
}

View File

@ -94,28 +94,28 @@ Dwarf::assemble $asm_file {
set f2_l1 [gdb_get_line_number "callee: body" $srcfile4]
program {
{DW_LNE_set_address line_label_1}
{line $f1_l1}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
line $f1_l1
DW_LNS_copy
{line ${f1_l2}}
{DW_LNS_copy}
line ${f1_l2}
DW_LNS_copy
{DW_LNS_set_file 2}
{line ${f2_l1}}
{DW_LNS_copy}
DW_LNS_set_file 2
line ${f2_l1}
DW_LNS_copy
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNS_set_file 1}
{DW_LNE_set_address line_label_2}
{line ${f1_l3}}
{DW_LNS_copy}
DW_LNS_set_file 1
DW_LNE_set_address line_label_2
line ${f1_l3}
DW_LNS_copy
{DW_LNE_set_address line_label_3}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address line_label_3
DW_LNS_copy
DW_LNE_end_sequence
}
}
}

View File

@ -94,29 +94,29 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address $main_start}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label}
{line [gdb_get_line_number "main set global_var"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "main call foo"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "foo call bar"]}
{DW_LNS_copy}
{DW_LNE_set_address $main_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_start
line [gdb_get_line_number "main prologue"]
DW_LNS_copy
DW_LNE_set_address main_label
line [gdb_get_line_number "main set global_var"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "main call foo"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "foo call bar"]
DW_LNS_copy
DW_LNE_set_address $main_end
DW_LNE_end_sequence
{DW_LNE_set_address $bar_start}
{line [gdb_get_line_number "bar prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address bar_label}
{line [gdb_get_line_number "bar return global_var"]}
{DW_LNS_copy}
{DW_LNE_set_address $bar_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $bar_start
line [gdb_get_line_number "bar prologue"]
DW_LNS_copy
DW_LNE_set_address bar_label
line [gdb_get_line_number "bar return global_var"]
DW_LNS_copy
DW_LNE_set_address $bar_end
DW_LNE_end_sequence
}
}

View File

@ -110,20 +110,20 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address $main_start}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label}
{line [gdb_get_line_number "func call"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label}
{line [gdb_get_line_number "func end"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "main end"]}
{DW_LNS_copy}
{DW_LNE_set_address $main_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_start
line [gdb_get_line_number "main prologue"]
DW_LNS_copy
DW_LNE_set_address main_label
line [gdb_get_line_number "func call"]
DW_LNS_copy
DW_LNE_set_address main_label
line [gdb_get_line_number "func end"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "main end"]
DW_LNS_copy
DW_LNE_set_address $main_end
DW_LNE_end_sequence
}
}
}

View File

@ -68,84 +68,84 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address main}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_copy}
DW_LNE_set_address main
line [gdb_get_line_number "main prologue"]
DW_LNS_copy
{DW_LNE_set_address line_label_0}
{line [gdb_get_line_number "main start"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_0
line [gdb_get_line_number "main start"]
DW_LNS_copy
{DW_LNE_set_address line_label_1}
{line [gdb_get_line_number "Line 1"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
line [gdb_get_line_number "Line 1"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_3}
{line [gdb_get_line_number "Line 2"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_3
line [gdb_get_line_number "Line 2"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{line [gdb_get_line_number "Line 1"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
line [gdb_get_line_number "Line 1"]
DW_LNS_copy
{DW_LNE_set_address line_label_5}
{line [gdb_get_line_number "Line 3"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_5
line [gdb_get_line_number "Line 3"]
DW_LNS_copy
{DW_LNE_set_address line_label_6}
{line [gdb_get_line_number "Line 4"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_6
line [gdb_get_line_number "Line 4"]
DW_LNS_copy
{DW_LNE_set_address line_label_7}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_7
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_8}
{line [gdb_get_line_number "Line 2"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_8
line [gdb_get_line_number "Line 2"]
DW_LNS_copy
{DW_LNE_set_address line_label_9}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_9
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_10}
{line [gdb_get_line_number "Line 3"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_10
line [gdb_get_line_number "Line 3"]
DW_LNS_copy
{DW_LNE_set_address line_label_11}
{line [gdb_get_line_number "Line 5"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_11
line [gdb_get_line_number "Line 5"]
DW_LNS_copy
{DW_LNE_set_address line_label_12}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_12
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_13}
{line [gdb_get_line_number "Line 3"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_13
line [gdb_get_line_number "Line 3"]
DW_LNS_copy
{DW_LNE_set_address line_label_14}
{line [gdb_get_line_number "Line 4"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_14
line [gdb_get_line_number "Line 4"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_15}
{line [gdb_get_line_number "Line 5"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_15
line [gdb_get_line_number "Line 5"]
DW_LNS_copy
{DW_LNE_set_address line_label_16}
{line [gdb_get_line_number "main end"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_16
line [gdb_get_line_number "main end"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address ${main_end}}
{DW_LNE_end_sequence}
DW_LNE_set_address ${main_end}
DW_LNE_end_sequence
}
}
}

View File

@ -68,35 +68,35 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address main}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address main
line [gdb_get_line_number "main prologue"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_1}
{line [gdb_get_line_number "main, set var to 99"]}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
line [gdb_get_line_number "main, set var to 99"]
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{line [gdb_get_line_number "main, set var to 0"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
line [gdb_get_line_number "main, set var to 0"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_3}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_3
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_5}
{line [gdb_get_line_number "main end"]}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_5
line [gdb_get_line_number "main end"]
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address ${main_end}}
{DW_LNE_end_sequence}
DW_LNE_set_address ${main_end}
DW_LNE_end_sequence
}
}
}

View File

@ -62,46 +62,46 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address bar1_label}
{line 27}
{DW_LNS_copy}
DW_LNE_set_address bar1_label
line 27
DW_LNS_copy
{DW_LNE_set_address bar1_label_2}
{line 29}
{DW_LNS_copy}
DW_LNE_set_address bar1_label_2
line 29
DW_LNS_copy
{DW_LNE_set_address bar1_label_3}
{line 0}
{DW_LNS_copy}
DW_LNE_set_address bar1_label_3
line 0
DW_LNS_copy
{DW_LNE_set_address bar1_label_4}
{line 33}
{DW_LNS_copy}
DW_LNE_set_address bar1_label_4
line 33
DW_LNS_copy
{DW_LNE_set_address bar1_label_5}
{DW_LNE_end_sequence}
DW_LNE_set_address bar1_label_5
DW_LNE_end_sequence
{DW_LNE_set_address bar2_label}
{line 41}
{DW_LNS_copy}
DW_LNE_set_address bar2_label
line 41
DW_LNS_copy
{DW_LNE_set_address bar2_label_2}
{line 43}
{DW_LNS_copy}
DW_LNE_set_address bar2_label_2
line 43
DW_LNS_copy
{DW_LNE_set_address bar2_label_3}
{line 0}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
{DW_LNS_negate_stmt}
DW_LNE_set_address bar2_label_3
line 0
DW_LNS_negate_stmt
DW_LNS_copy
DW_LNS_negate_stmt
{DW_LNE_set_address bar2_label_4}
{line 47}
{DW_LNS_copy}
DW_LNE_set_address bar2_label_4
line 47
DW_LNS_copy
{DW_LNE_set_address bar2_label_5}
{DW_LNE_end_sequence}
DW_LNE_set_address bar2_label_5
DW_LNE_end_sequence
}
}
}

View File

@ -83,24 +83,24 @@ proc test_1 { _cv _cdw64 _lv _ldw64 {_string_form ""}} {
file_name "$srcfile" 1
program {
{DW_LNE_set_address bar_label}
{line [line_for bar_label]}
{DW_LNS_copy}
DW_LNE_set_address bar_label
line [line_for bar_label]
DW_LNS_copy
{DW_LNE_set_address bar_label_2}
{line [line_for bar_label_2]}
{DW_LNS_copy}
DW_LNE_set_address bar_label_2
line [line_for bar_label_2]
DW_LNS_copy
{DW_LNE_set_address bar_label_3}
{line [line_for bar_label_3]}
{DW_LNS_copy}
DW_LNE_set_address bar_label_3
line [line_for bar_label_3]
DW_LNS_copy
{DW_LNE_set_address bar_label_4}
{line [line_for bar_label_4]}
{DW_LNS_copy}
DW_LNE_set_address bar_label_4
line [line_for bar_label_4]
DW_LNS_copy
{DW_LNE_set_address bar_label_5}
{DW_LNE_end_sequence}
DW_LNE_set_address bar_label_5
DW_LNE_end_sequence
}
}
}

View File

@ -58,19 +58,19 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address main_label}
{line 1}
{DW_LNS_copy}
DW_LNE_set_address main_label
line 1
DW_LNS_copy
{DW_LNS_advance_pc 1}
{DW_LNE_end_sequence}
DW_LNS_advance_pc 1
DW_LNE_end_sequence
{DW_LNE_set_address 0}
{line 2}
{DW_LNS_copy}
DW_LNE_set_address 0
line 2
DW_LNS_copy
{DW_LNS_advance_pc 1}
{DW_LNE_end_sequence}
DW_LNS_advance_pc 1
DW_LNE_end_sequence
}
}
}

View File

@ -52,28 +52,28 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address $main_start}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_copy}
DW_LNE_set_address $main_start
line [gdb_get_line_number "main prologue"]
DW_LNS_copy
{DW_LNE_set_address main_label}
{line [gdb_get_line_number "main assign m"]}
{DW_LNS_copy}
DW_LNE_set_address main_label
line [gdb_get_line_number "main assign m"]
DW_LNS_copy
{DW_LNE_set_address main_assign_n}
{line [gdb_get_line_number "main assign n"]}
{DW_LNS_copy}
DW_LNE_set_address main_assign_n
line [gdb_get_line_number "main assign n"]
DW_LNS_copy
{DW_LNE_set_address main_end_prologue}
{line [gdb_get_line_number "main assign o"]}
{DW_LNS_set_prologue_end}
{DW_LNS_copy}
DW_LNE_set_address main_end_prologue
line [gdb_get_line_number "main assign o"]
DW_LNS_set_prologue_end
DW_LNS_copy
{DW_LNE_set_address main_end}
{line [gdb_get_line_number "main end"]}
{DW_LNS_copy}
DW_LNE_set_address main_end
line [gdb_get_line_number "main end"]
DW_LNS_copy
{DW_LNE_end_sequence}
DW_LNE_end_sequence
}
}
}

View File

@ -84,29 +84,29 @@ Dwarf::assemble $asm_file {
# table data associated with it. We do make use of the fake
# line numbers that we pick here in the tests below.
program {
{DW_LNE_set_address [lindex $main_func 0]}
{DW_LNS_advance_line 10}
{DW_LNS_copy}
{DW_LNS_advance_pc [lindex $main_func 1]}
{DW_LNS_advance_line 19}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address [lindex $main_func 0]
DW_LNS_advance_line 10
DW_LNS_copy
DW_LNS_advance_pc [lindex $main_func 1]
DW_LNS_advance_line 19
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address [lindex $frame2_func 0]}
{DW_LNS_advance_line 20}
{DW_LNS_copy}
{DW_LNS_advance_pc [lindex $frame2_func 1]}
{DW_LNS_advance_line 29}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address [lindex $frame2_func 0]
DW_LNS_advance_line 20
DW_LNS_copy
DW_LNS_advance_pc [lindex $frame2_func 1]
DW_LNS_advance_line 29
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address [lindex $frame3_func 0]}
{DW_LNS_advance_line 30}
{DW_LNS_copy}
{DW_LNS_advance_pc [lindex $frame3_func 1]}
{DW_LNS_advance_line 39}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address [lindex $frame3_func 0]
DW_LNS_advance_line 30
DW_LNS_copy
DW_LNS_advance_pc [lindex $frame3_func 1]
DW_LNS_advance_line 39
DW_LNS_copy
DW_LNE_end_sequence
}
}

View File

@ -133,66 +133,66 @@ proc do_test {suffix} {
# Generate a line table program. An attempt was made to make it
# reasonably accurate as it made debugging the test case easier.
program {
{DW_LNE_set_address $main_start}
{line [gdb_get_line_number "main prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label}
{line [gdb_get_line_number "main foo call"]}
{DW_LNS_copy}
{DW_LNE_set_address main_label2}
{line [gdb_get_line_number "main return"]}
{DW_LNS_copy}
{DW_LNE_set_address $main_end}
{line [expr [gdb_get_line_number "main end"] + 1]}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_start
line [gdb_get_line_number "main prologue"]
DW_LNS_copy
DW_LNE_set_address main_label
line [gdb_get_line_number "main foo call"]
DW_LNS_copy
DW_LNE_set_address main_label2
line [gdb_get_line_number "main return"]
DW_LNS_copy
DW_LNE_set_address $main_end
line [expr [gdb_get_line_number "main end"] + 1]
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address $foo_start}
{line [gdb_get_line_number "foo prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address foo_label}
{line [gdb_get_line_number "foo bar call"]}
{DW_LNS_copy}
{DW_LNE_set_address foo_label2}
{line [gdb_get_line_number "foo foo_cold call"]}
{DW_LNS_copy}
{DW_LNE_set_address foo_label3}
{line [gdb_get_line_number "foo end"]}
{DW_LNS_copy}
{DW_LNE_set_address $foo_end}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $foo_start
line [gdb_get_line_number "foo prologue"]
DW_LNS_copy
DW_LNE_set_address foo_label
line [gdb_get_line_number "foo bar call"]
DW_LNS_copy
DW_LNE_set_address foo_label2
line [gdb_get_line_number "foo foo_cold call"]
DW_LNS_copy
DW_LNE_set_address foo_label3
line [gdb_get_line_number "foo end"]
DW_LNS_copy
DW_LNE_set_address $foo_end
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address $bar_start}
{line [gdb_get_line_number "bar end"]}
{DW_LNS_copy}
{DW_LNS_advance_pc $bar_len}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $bar_start
line [gdb_get_line_number "bar end"]
DW_LNS_copy
DW_LNS_advance_pc $bar_len
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address $baz_start}
{line [gdb_get_line_number "baz end"]}
{DW_LNS_copy}
{DW_LNS_advance_pc $baz_len}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $baz_start
line [gdb_get_line_number "baz end"]
DW_LNS_copy
DW_LNS_advance_pc $baz_len
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address $foo_cold_start}
{line [gdb_get_line_number "foo_cold prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address foo_cold_label}
{line [gdb_get_line_number "foo_cold baz call"]}
{DW_LNS_copy}
{DW_LNE_set_address foo_cold_label2}
{line [gdb_get_line_number "foo_cold end"]}
{DW_LNS_copy}
{DW_LNE_set_address $foo_cold_end}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $foo_cold_start
line [gdb_get_line_number "foo_cold prologue"]
DW_LNS_copy
DW_LNE_set_address foo_cold_label
line [gdb_get_line_number "foo_cold baz call"]
DW_LNS_copy
DW_LNE_set_address foo_cold_label2
line [gdb_get_line_number "foo_cold end"]
DW_LNS_copy
DW_LNE_set_address $foo_cold_end
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
}
}

View File

@ -79,29 +79,29 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address bar_label}
{line 26}
{DW_LNS_copy}
DW_LNE_set_address bar_label
line 26
DW_LNS_copy
{DW_LNE_set_address $bar_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $bar_end
DW_LNE_end_sequence
{DW_LNE_set_address main_label}
{line 32}
{DW_LNS_copy}
DW_LNE_set_address main_label
line 32
DW_LNS_copy
{DW_LNE_set_address main_label_2}
{line 36}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
{DW_LNS_negate_stmt}
DW_LNE_set_address main_label_2
line 36
DW_LNS_negate_stmt
DW_LNS_copy
DW_LNS_negate_stmt
{DW_LNE_set_address main_label_3}
{line 36}
{DW_LNS_copy}
DW_LNE_set_address main_label_3
line 36
DW_LNS_copy
{DW_LNE_set_address $main_end}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_end
DW_LNE_end_sequence
}
}
}

View File

@ -77,7 +77,7 @@ Dwarf::assemble $asm_file {
include_dir "${srcdir}/${subdir}"
file_name "dw2-symtab-includes.h" 1
program {
{DW_LNS_advance_line 1}
DW_LNS_advance_line 1
}
}
}

View File

@ -51,7 +51,7 @@ Dwarf::assemble $asm_file {
include_dir "${srcdir}/${subdir}"
file_name "dw2-symtab-includes.h" 1
program {
{DW_LNS_advance_line 1}
DW_LNS_advance_line 1
}
}
}

View File

@ -57,14 +57,14 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address main_label}
{line 27}
{DW_LNE_user 1 $DW_LNE_lo_usr}
{DW_LNE_user 2 $DW_LNE_hi_usr}
{DW_LNS_copy}
DW_LNE_set_address main_label
line 27
DW_LNE_user 1 $DW_LNE_lo_usr
DW_LNE_user 2 $DW_LNE_hi_usr
DW_LNS_copy
{DW_LNE_set_address main_label_2}
{DW_LNE_end_sequence}
DW_LNE_set_address main_label_2
DW_LNE_end_sequence
}
}
}

View File

@ -88,18 +88,18 @@ Dwarf::assemble $asm_file_1 {
file_name "$srcfile" 1
program {
{DW_LNE_set_address $func_start}
{DW_LNS_advance_line 24}
{DW_LNS_copy}
DW_LNE_set_address $func_start
DW_LNS_advance_line 24
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_advance_line 3}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_advance_line 3
DW_LNS_copy
{DW_LNE_set_address $func_end}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $func_end
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
}
}
@ -164,26 +164,26 @@ Dwarf::assemble $asm_file_2 {
file_name "$srcfile" 1
program {
{DW_LNE_set_address $main_start}
{DW_LNS_advance_line 32}
{DW_LNS_copy}
DW_LNE_set_address $main_start
DW_LNS_advance_line 32
DW_LNS_copy
{DW_LNE_set_address line_label_1}
{DW_LNS_advance_line 3}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
DW_LNS_advance_line 3
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_advance_line 2}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_advance_line 2
DW_LNS_copy
{DW_LNE_set_address line_label_3}
{DW_LNS_advance_line 2}
{DW_LNS_copy}
DW_LNE_set_address line_label_3
DW_LNS_advance_line 2
DW_LNS_copy
{DW_LNE_set_address $main_end}
{DW_LNS_advance_line 2}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $main_end
DW_LNS_advance_line 2
DW_LNS_copy
DW_LNE_end_sequence
}
}

View File

@ -83,37 +83,37 @@ Dwarf::assemble $asm_file {
file_name "$srcfile" 1
program {
{DW_LNE_set_address line_label_1}
{DW_LNS_advance_line 15}
{DW_LNS_copy}
DW_LNE_set_address line_label_1
DW_LNS_advance_line 15
DW_LNS_copy
{DW_LNE_set_address line_label_2}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_2
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNE_set_address line_label_3}
{DW_LNS_advance_line 4}
{DW_LNS_copy}
DW_LNE_set_address line_label_3
DW_LNS_advance_line 4
DW_LNS_copy
{DW_LNE_set_address line_label_4}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_4
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNS_advance_line -4}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNS_advance_line -4
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_5}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
DW_LNE_set_address line_label_5
DW_LNS_advance_line 1
DW_LNS_copy
{DW_LNE_set_address line_label_6}
{DW_LNS_advance_line 1}
{DW_LNS_negate_stmt}
{DW_LNS_copy}
DW_LNE_set_address line_label_6
DW_LNS_advance_line 1
DW_LNS_negate_stmt
DW_LNS_copy
{DW_LNE_set_address line_label_7}
{DW_LNE_end_sequence}
DW_LNE_set_address line_label_7
DW_LNE_end_sequence
}
}
}

View File

@ -267,31 +267,31 @@ Dwarf::assemble ${asm_file} {
# Generate a line table program.
program {
{DW_LNE_set_address $foo_start}
{line [gdb_get_line_number "foo prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address foo_label}
{line [gdb_get_line_number "foo return"]}
{DW_LNS_copy}
{line [gdb_get_line_number "foo end"]}
{DW_LNS_copy}
{DW_LNE_set_address $foo_end}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $foo_start
line [gdb_get_line_number "foo prologue"]
DW_LNS_copy
DW_LNE_set_address foo_label
line [gdb_get_line_number "foo return"]
DW_LNS_copy
line [gdb_get_line_number "foo end"]
DW_LNS_copy
DW_LNE_set_address $foo_end
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
{DW_LNE_set_address $bar_start}
{line [gdb_get_line_number "bar prologue"]}
{DW_LNS_copy}
{DW_LNE_set_address bar_label}
{line [gdb_get_line_number "bar return"]}
{DW_LNS_copy}
{line [gdb_get_line_number "bar end"]}
{DW_LNS_copy}
{DW_LNE_set_address $bar_end}
{DW_LNS_advance_line 1}
{DW_LNS_copy}
{DW_LNE_end_sequence}
DW_LNE_set_address $bar_start
line [gdb_get_line_number "bar prologue"]
DW_LNS_copy
DW_LNE_set_address bar_label
line [gdb_get_line_number "bar return"]
DW_LNS_copy
line [gdb_get_line_number "bar end"]
DW_LNS_copy
DW_LNE_set_address $bar_end
DW_LNS_advance_line 1
DW_LNS_copy
DW_LNE_end_sequence
}
}

View File

@ -2410,7 +2410,7 @@ namespace eval Dwarf {
define_label $_line_header_end_label
}
proc program {statements} {
proc program { body } {
variable _line_header_end_label
variable _line
@ -2502,9 +2502,7 @@ namespace eval Dwarf {
_op .sleb128 ${num}
}
foreach statement $statements {
uplevel 1 $statement
}
uplevel $body
}
uplevel $body