* [PATCH] gdb/testsuite: make DWARF assembler's ranges' "base" and "range" procs
@ 2020-11-06 16:33 Simon Marchi via Gdb-patches
2020-11-06 18:08 ` Andrew Burgess
0 siblings, 1 reply; 3+ messages in thread
From: Simon Marchi via Gdb-patches @ 2020-11-06 16:33 UTC (permalink / raw)
To: gdb-patches; +Cc: Simon Marchi
When creating a .debug_ranges section using the testsuite's DWARF
assembler, it currently looks like this:
ranges {
sequence {
{base ...}
{range ...}
{range ...}
}
}
The sub-tree of sequence is manually traversed as a list of lists. I
think it would be nicer if `base` and `range` where procedure, just like
the other levels:
ranges {
sequence {
base ...
range ...
range ...
}
}
That makes the implementation more robust, and the usage a bit nicer
(less special characters). It also allows having comments in between
the range list entries:
ranges {
sequence {
base ...
range ...
# Hello world.
range ...
}
}
... which doesn't work with the current approach.
gdb/testsuite/ChangeLog:
* lib/dwarf.exp (ranges): Handle "base" and "range" as
proceduresu.
* gdb.dwarf/dw2-bad-elf.exp: Adjust.
* gdb.dwarf2/dw2-inline-many-frames.exp: Adjust.
* gdb.dwarf2/dw2-inline-stepping.exp: Adjust.
* gdb.dwarf2/dw2-ranges-base.exp: Adjust.
* gdb.dwarf2/dw2-ranges-func.exp: Adjust.
* gdb.dwarf2/dw2-ranges-overlap.exp: Adjust.
* gdb.dwarf2/dw2-ranges-psym.exp: Adjust.
* gdb.dwarf2/enqueued-cu-base-addr.exp: Adjust.
Change-Id: I0b2af480faff54d0fd4214e0cc8d042d9583a865
---
gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp | 8 +--
.../gdb.dwarf2/dw2-inline-many-frames.exp | 12 ++--
.../gdb.dwarf2/dw2-inline-stepping.exp | 4 +-
gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp | 12 ++--
gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp | 14 ++---
.../gdb.dwarf2/dw2-ranges-overlap.exp | 8 +--
gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp | 12 ++--
.../gdb.dwarf2/enqueued-cu-base-addr.exp | 2 +-
gdb/testsuite/lib/dwarf.exp | 55 +++++++++----------
9 files changed, 61 insertions(+), 66 deletions(-)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
index e939046e961..20ecd68e7f1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
@@ -107,12 +107,12 @@ Dwarf::assemble $asm_file {
ranges {is_64 [is_64_target]} {
ranges_label_1: sequence {
- {base [lindex $main_result 0]}
- {range 0 [lindex $main_result 1]}
+ base [lindex $main_result 0]
+ range 0 [lindex $main_result 1]
}
ranges_label_2: sequence {
- {base some_func}
- {range 0 64}
+ base some_func
+ range 0 64
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
index 935d519934c..591a9276577 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
@@ -281,12 +281,12 @@ Dwarf::assemble $asm_file {
ranges {is_64 [is_64_target]} {
ranges_label: sequence {
- {range {${main_start}} ${main_end}}
- {range {${ddd_start}} ${ddd_end}}
- {range {${eee_start}} ${eee_end}}
- {range {${fff_start}} ${fff_end}}
- {range {${jjj_start}} ${jjj_end}}
- {range {${kkk_start}} ${kkk_end}}
+ range ${main_start} ${main_end}
+ range ${ddd_start} ${ddd_end}
+ range ${eee_start} ${eee_end}
+ range ${fff_start} ${fff_end}
+ range ${jjj_start} ${jjj_end}
+ range ${kkk_start} ${kkk_end}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
index 24fbb717b22..a5853242dc5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
@@ -122,8 +122,8 @@ Dwarf::assemble $asm_file {
ranges {is_64 [is_64_target]} {
ranges_label: sequence {
- {range {${main_start}} ${main_end}}
- {range {${bar_start}} ${bar_end}}
+ range ${main_start} ${main_end}
+ range ${bar_start} ${bar_end}
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
index 3f03fa6f7ec..3164a908e70 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
@@ -115,12 +115,12 @@ Dwarf::assemble $asm_file {
# base for each function.
ranges {is_64 [is_64_target]} {
ranges_label: sequence {
- {base [lindex $main_func 0]}
- {range 0 [lindex $main_func 1]}
- {base [lindex $frame2_func 0]}
- {range 0 [lindex $frame2_func 1]}
- {base [lindex $frame3_func 0]}
- {range 0 [lindex $frame3_func 1]}
+ base [lindex $main_func 0]
+ range 0 [lindex $main_func 1]
+ base [lindex $frame2_func 0]
+ range 0 [lindex $frame2_func 1]
+ base [lindex $frame3_func 0]
+ range 0 [lindex $frame3_func 1]
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
index ac37b24285a..504b4049c2f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
@@ -199,15 +199,15 @@ proc do_test {suffix} {
# Generate ranges data.
ranges {is_64 [is_64_target]} {
func_ranges_label: sequence {
- {range {$foo_start } $foo_end}
- {range {$foo_cold_start} $foo_cold_end}
+ range $foo_start $foo_end
+ range $foo_cold_start $foo_cold_end
}
cu_ranges_label: sequence {
- {range {$foo_start } $foo_end}
- {range {$foo_cold_start} $foo_cold_end}
- {range {$main_start} $main_end}
- {range {$bar_start} $bar_end}
- {range {$baz_start} $baz_end}
+ range $foo_start $foo_end
+ range $foo_cold_start $foo_cold_end
+ range $main_start $main_end
+ range $bar_start $bar_end
+ range $baz_start $baz_end
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
index 59c10c8ae24..485f5c04f1f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
@@ -66,10 +66,10 @@ Dwarf::assemble $asm_file {
ranges {is_64 [is_64_target]} {
ranges_label: sequence {
- {base [lindex $main_func 0]}
- {range 0 [lindex $main_func 1]}
- {base [lindex $bar_func 0]}
- {range 0 [lindex $bar_func 1]}
+ base [lindex $main_func 0]
+ range 0 [lindex $main_func 1]
+ base [lindex $bar_func 0]
+ range 0 [lindex $bar_func 1]
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
index 4ced125cd18..1be27c2622b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
@@ -108,14 +108,14 @@ Dwarf::assemble $asm_file {
# Generate ranges data.
ranges {is_64 [is_64_target]} {
func_ranges_label: sequence {
- {range {$foo_start } $foo_end}
- {range {$foo_low_start} $foo_low_end}
+ range $foo_start $foo_end
+ range $foo_low_start $foo_low_end
}
cu_ranges_label: sequence {
- {range {$foo_start } $foo_end}
- {range {$foo_low_start} $foo_low_end}
- {range {$bar_start} $bar_end}
- {range {$baz_start} $baz_end}
+ range $foo_start $foo_end
+ range $foo_low_start $foo_low_end
+ range $bar_start $bar_end
+ range $baz_start $baz_end
}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
index 77fe6ff5e94..e4ac1c9851e 100644
--- a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
@@ -73,7 +73,7 @@ Dwarf::assemble $asm_file {
ranges {is_64 [is_64_target]} {
ranges_label: sequence {
- {range 0 [lindex $main_func 1]}
+ range 0 [lindex $main_func 1]
}
}
}
diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
index c585621ac48..c1596df58be 100644
--- a/gdb/testsuite/lib/dwarf.exp
+++ b/gdb/testsuite/lib/dwarf.exp
@@ -1247,42 +1247,37 @@ namespace eval Dwarf {
set section ".debug_ranges"
_section $section
- proc sequence {{ranges {}}} {
+ proc sequence { body } {
variable _debug_ranges_64_bit
# Emit the sequence of addresses.
- set base ""
- foreach range $ranges {
- set range [uplevel 1 "subst \"$range\""]
- set type [lindex $range 0]
- switch -exact -- $type {
- base {
- set base [lrange $range 1 end]
-
- if { $_debug_ranges_64_bit } then {
- _op .8byte 0xffffffffffffffff "Base Marker"
- _op .8byte $base "Base Address"
- } else {
- _op .4byte 0xffffffff "Base Marker"
- _op .4byte $base "Base Address"
- }
- }
- range {
- set start [lindex $range 1]
- set end [lrange $range 2 end]
-
- if { $_debug_ranges_64_bit } then {
- _op .8byte $start "Start Address"
- _op .8byte $end "End Address"
- } else {
- _op .4byte $start "Start Address"
- _op .4byte $end "End Address"
- }
- }
- default { error "unknown range type: $type " }
+
+ proc base { addr } {
+ variable _debug_ranges_64_bit
+
+ if { $_debug_ranges_64_bit } then {
+ _op .8byte 0xffffffffffffffff "Base Marker"
+ _op .8byte $addr "Base Address"
+ } else {
+ _op .4byte 0xffffffff "Base Marker"
+ _op .4byte $addr "Base Address"
}
}
+ proc range { start end } {
+ variable _debug_ranges_64_bit
+
+ if { $_debug_ranges_64_bit } then {
+ _op .8byte $start "Start Address"
+ _op .8byte $end "End Address"
+ } else {
+ _op .4byte $start "Start Address"
+ _op .4byte $end "End Address"
+ }
+ }
+
+ uplevel $body
+
# End of the sequence.
if { $_debug_ranges_64_bit } then {
_op .8byte 0x0 "End of Sequence Marker (Part 1)"
--
2.28.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] gdb/testsuite: make DWARF assembler's ranges' "base" and "range" procs
2020-11-06 16:33 [PATCH] gdb/testsuite: make DWARF assembler's ranges' "base" and "range" procs Simon Marchi via Gdb-patches
@ 2020-11-06 18:08 ` Andrew Burgess
2020-11-06 18:11 ` Simon Marchi via Gdb-patches
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Burgess @ 2020-11-06 18:08 UTC (permalink / raw)
To: Simon Marchi; +Cc: gdb-patches
* Simon Marchi via Gdb-patches <gdb-patches@sourceware.org> [2020-11-06 11:33:59 -0500]:
> When creating a .debug_ranges section using the testsuite's DWARF
> assembler, it currently looks like this:
>
> ranges {
> sequence {
> {base ...}
> {range ...}
> {range ...}
> }
> }
>
> The sub-tree of sequence is manually traversed as a list of lists. I
> think it would be nicer if `base` and `range` where procedure, just like
> the other levels:
>
> ranges {
> sequence {
> base ...
> range ...
> range ...
> }
> }
>
> That makes the implementation more robust, and the usage a bit nicer
> (less special characters). It also allows having comments in between
> the range list entries:
>
> ranges {
> sequence {
> base ...
> range ...
>
> # Hello world.
> range ...
> }
> }
>
> ... which doesn't work with the current approach.
>
> gdb/testsuite/ChangeLog:
>
> * lib/dwarf.exp (ranges): Handle "base" and "range" as
> proceduresu.
> * gdb.dwarf/dw2-bad-elf.exp: Adjust.
> * gdb.dwarf2/dw2-inline-many-frames.exp: Adjust.
> * gdb.dwarf2/dw2-inline-stepping.exp: Adjust.
> * gdb.dwarf2/dw2-ranges-base.exp: Adjust.
> * gdb.dwarf2/dw2-ranges-func.exp: Adjust.
> * gdb.dwarf2/dw2-ranges-overlap.exp: Adjust.
> * gdb.dwarf2/dw2-ranges-psym.exp: Adjust.
> * gdb.dwarf2/enqueued-cu-base-addr.exp: Adjust.
This seems like a good change to me.
Thanks for doing this.
Andrew
>
> Change-Id: I0b2af480faff54d0fd4214e0cc8d042d9583a865
> ---
> gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp | 8 +--
> .../gdb.dwarf2/dw2-inline-many-frames.exp | 12 ++--
> .../gdb.dwarf2/dw2-inline-stepping.exp | 4 +-
> gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp | 12 ++--
> gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp | 14 ++---
> .../gdb.dwarf2/dw2-ranges-overlap.exp | 8 +--
> gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp | 12 ++--
> .../gdb.dwarf2/enqueued-cu-base-addr.exp | 2 +-
> gdb/testsuite/lib/dwarf.exp | 55 +++++++++----------
> 9 files changed, 61 insertions(+), 66 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
> index e939046e961..20ecd68e7f1 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
> @@ -107,12 +107,12 @@ Dwarf::assemble $asm_file {
>
> ranges {is_64 [is_64_target]} {
> ranges_label_1: sequence {
> - {base [lindex $main_result 0]}
> - {range 0 [lindex $main_result 1]}
> + base [lindex $main_result 0]
> + range 0 [lindex $main_result 1]
> }
> ranges_label_2: sequence {
> - {base some_func}
> - {range 0 64}
> + base some_func
> + range 0 64
> }
> }
>
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
> index 935d519934c..591a9276577 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
> @@ -281,12 +281,12 @@ Dwarf::assemble $asm_file {
>
> ranges {is_64 [is_64_target]} {
> ranges_label: sequence {
> - {range {${main_start}} ${main_end}}
> - {range {${ddd_start}} ${ddd_end}}
> - {range {${eee_start}} ${eee_end}}
> - {range {${fff_start}} ${fff_end}}
> - {range {${jjj_start}} ${jjj_end}}
> - {range {${kkk_start}} ${kkk_end}}
> + range ${main_start} ${main_end}
> + range ${ddd_start} ${ddd_end}
> + range ${eee_start} ${eee_end}
> + range ${fff_start} ${fff_end}
> + range ${jjj_start} ${jjj_end}
> + range ${kkk_start} ${kkk_end}
> }
> }
> }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
> index 24fbb717b22..a5853242dc5 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
> @@ -122,8 +122,8 @@ Dwarf::assemble $asm_file {
>
> ranges {is_64 [is_64_target]} {
> ranges_label: sequence {
> - {range {${main_start}} ${main_end}}
> - {range {${bar_start}} ${bar_end}}
> + range ${main_start} ${main_end}
> + range ${bar_start} ${bar_end}
> }
> }
> }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
> index 3f03fa6f7ec..3164a908e70 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
> @@ -115,12 +115,12 @@ Dwarf::assemble $asm_file {
> # base for each function.
> ranges {is_64 [is_64_target]} {
> ranges_label: sequence {
> - {base [lindex $main_func 0]}
> - {range 0 [lindex $main_func 1]}
> - {base [lindex $frame2_func 0]}
> - {range 0 [lindex $frame2_func 1]}
> - {base [lindex $frame3_func 0]}
> - {range 0 [lindex $frame3_func 1]}
> + base [lindex $main_func 0]
> + range 0 [lindex $main_func 1]
> + base [lindex $frame2_func 0]
> + range 0 [lindex $frame2_func 1]
> + base [lindex $frame3_func 0]
> + range 0 [lindex $frame3_func 1]
> }
> }
> }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
> index ac37b24285a..504b4049c2f 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
> @@ -199,15 +199,15 @@ proc do_test {suffix} {
> # Generate ranges data.
> ranges {is_64 [is_64_target]} {
> func_ranges_label: sequence {
> - {range {$foo_start } $foo_end}
> - {range {$foo_cold_start} $foo_cold_end}
> + range $foo_start $foo_end
> + range $foo_cold_start $foo_cold_end
> }
> cu_ranges_label: sequence {
> - {range {$foo_start } $foo_end}
> - {range {$foo_cold_start} $foo_cold_end}
> - {range {$main_start} $main_end}
> - {range {$bar_start} $bar_end}
> - {range {$baz_start} $baz_end}
> + range $foo_start $foo_end
> + range $foo_cold_start $foo_cold_end
> + range $main_start $main_end
> + range $bar_start $bar_end
> + range $baz_start $baz_end
> }
> }
> }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
> index 59c10c8ae24..485f5c04f1f 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
> @@ -66,10 +66,10 @@ Dwarf::assemble $asm_file {
>
> ranges {is_64 [is_64_target]} {
> ranges_label: sequence {
> - {base [lindex $main_func 0]}
> - {range 0 [lindex $main_func 1]}
> - {base [lindex $bar_func 0]}
> - {range 0 [lindex $bar_func 1]}
> + base [lindex $main_func 0]
> + range 0 [lindex $main_func 1]
> + base [lindex $bar_func 0]
> + range 0 [lindex $bar_func 1]
> }
> }
> }
> diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
> index 4ced125cd18..1be27c2622b 100644
> --- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
> +++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
> @@ -108,14 +108,14 @@ Dwarf::assemble $asm_file {
> # Generate ranges data.
> ranges {is_64 [is_64_target]} {
> func_ranges_label: sequence {
> - {range {$foo_start } $foo_end}
> - {range {$foo_low_start} $foo_low_end}
> + range $foo_start $foo_end
> + range $foo_low_start $foo_low_end
> }
> cu_ranges_label: sequence {
> - {range {$foo_start } $foo_end}
> - {range {$foo_low_start} $foo_low_end}
> - {range {$bar_start} $bar_end}
> - {range {$baz_start} $baz_end}
> + range $foo_start $foo_end
> + range $foo_low_start $foo_low_end
> + range $bar_start $bar_end
> + range $baz_start $baz_end
> }
> }
> }
> diff --git a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
> index 77fe6ff5e94..e4ac1c9851e 100644
> --- a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
> +++ b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
> @@ -73,7 +73,7 @@ Dwarf::assemble $asm_file {
>
> ranges {is_64 [is_64_target]} {
> ranges_label: sequence {
> - {range 0 [lindex $main_func 1]}
> + range 0 [lindex $main_func 1]
> }
> }
> }
> diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
> index c585621ac48..c1596df58be 100644
> --- a/gdb/testsuite/lib/dwarf.exp
> +++ b/gdb/testsuite/lib/dwarf.exp
> @@ -1247,42 +1247,37 @@ namespace eval Dwarf {
> set section ".debug_ranges"
> _section $section
>
> - proc sequence {{ranges {}}} {
> + proc sequence { body } {
> variable _debug_ranges_64_bit
>
> # Emit the sequence of addresses.
> - set base ""
> - foreach range $ranges {
> - set range [uplevel 1 "subst \"$range\""]
> - set type [lindex $range 0]
> - switch -exact -- $type {
> - base {
> - set base [lrange $range 1 end]
> -
> - if { $_debug_ranges_64_bit } then {
> - _op .8byte 0xffffffffffffffff "Base Marker"
> - _op .8byte $base "Base Address"
> - } else {
> - _op .4byte 0xffffffff "Base Marker"
> - _op .4byte $base "Base Address"
> - }
> - }
> - range {
> - set start [lindex $range 1]
> - set end [lrange $range 2 end]
> -
> - if { $_debug_ranges_64_bit } then {
> - _op .8byte $start "Start Address"
> - _op .8byte $end "End Address"
> - } else {
> - _op .4byte $start "Start Address"
> - _op .4byte $end "End Address"
> - }
> - }
> - default { error "unknown range type: $type " }
> +
> + proc base { addr } {
> + variable _debug_ranges_64_bit
> +
> + if { $_debug_ranges_64_bit } then {
> + _op .8byte 0xffffffffffffffff "Base Marker"
> + _op .8byte $addr "Base Address"
> + } else {
> + _op .4byte 0xffffffff "Base Marker"
> + _op .4byte $addr "Base Address"
> }
> }
>
> + proc range { start end } {
> + variable _debug_ranges_64_bit
> +
> + if { $_debug_ranges_64_bit } then {
> + _op .8byte $start "Start Address"
> + _op .8byte $end "End Address"
> + } else {
> + _op .4byte $start "Start Address"
> + _op .4byte $end "End Address"
> + }
> + }
> +
> + uplevel $body
> +
> # End of the sequence.
> if { $_debug_ranges_64_bit } then {
> _op .8byte 0x0 "End of Sequence Marker (Part 1)"
> --
> 2.28.0
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] gdb/testsuite: make DWARF assembler's ranges' "base" and "range" procs
2020-11-06 18:08 ` Andrew Burgess
@ 2020-11-06 18:11 ` Simon Marchi via Gdb-patches
0 siblings, 0 replies; 3+ messages in thread
From: Simon Marchi via Gdb-patches @ 2020-11-06 18:11 UTC (permalink / raw)
To: Andrew Burgess; +Cc: gdb-patches
On 2020-11-06 1:08 p.m., Andrew Burgess wrote:
> This seems like a good change to me.
>
> Thanks for doing this.
>
> Andrew
I pushed it, thanks.
Simon
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-11-06 18:11 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-06 16:33 [PATCH] gdb/testsuite: make DWARF assembler's ranges' "base" and "range" procs Simon Marchi via Gdb-patches
2020-11-06 18:08 ` Andrew Burgess
2020-11-06 18:11 ` Simon Marchi via Gdb-patches
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox