mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-27 14:39:09 +08:00
Add test for "List actual code around more than one location" change
This adds a test for the "list" command change done in 0d999a6ef0f9 ("List actual code around more than one location"). gdb/ChangeLog: 2017-08-22 Pedro Alves <palves@redhat.com> * gdb.cp/overload.exp (line_range_pattern): New procedure. (top level): Add "list all overloads" tests.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2017-08-22 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* gdb.cp/overload.exp (line_range_pattern): New procedure.
|
||||||
|
(top level): Add "list all overloads" tests.
|
||||||
|
|
||||||
2017-08-22 Tom Tromey <tom@tromey.com>
|
2017-08-22 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* gdb.gdb/xfullpath.exp: Remove.
|
* gdb.gdb/xfullpath.exp: Remove.
|
||||||
|
@ -263,10 +263,24 @@ gdb_test "print bar(d)" "= 22"
|
|||||||
|
|
||||||
# List overloaded functions.
|
# List overloaded functions.
|
||||||
|
|
||||||
|
gdb_test_no_output "set listsize 1" ""
|
||||||
|
|
||||||
|
# Build source listing pattern based on an inclusive line range.
|
||||||
|
|
||||||
|
proc line_range_pattern { range_start range_end } {
|
||||||
|
global line_re
|
||||||
|
|
||||||
|
for {set i $range_start} {$i <= $range_end} {incr i} {
|
||||||
|
append pattern "\r\n$i\[ \t\]\[^\r\n\]*"
|
||||||
|
}
|
||||||
|
|
||||||
|
verbose -log "pattern $pattern"
|
||||||
|
return $pattern
|
||||||
|
}
|
||||||
|
|
||||||
# The void case is tricky because some compilers say "(void)"
|
# The void case is tricky because some compilers say "(void)"
|
||||||
# and some compilers say "()".
|
# and some compilers say "()".
|
||||||
|
|
||||||
gdb_test_no_output "set listsize 1" ""
|
|
||||||
gdb_test_multiple "info func overloadfnarg" "list overloaded function with no args" {
|
gdb_test_multiple "info func overloadfnarg" "list overloaded function with no args" {
|
||||||
-re ".*overloadfnarg\\(void\\).*$gdb_prompt $" {
|
-re ".*overloadfnarg\\(void\\).*$gdb_prompt $" {
|
||||||
# gcc 2
|
# gcc 2
|
||||||
@ -324,6 +338,24 @@ gdb_test "print N::nsoverload ()" " = 1"
|
|||||||
gdb_test "print N::nsoverload (2)" " = 2"
|
gdb_test "print N::nsoverload (2)" " = 2"
|
||||||
gdb_test "print N::nsoverload (2, 3)" " = 5"
|
gdb_test "print N::nsoverload (2, 3)" " = 5"
|
||||||
|
|
||||||
|
# Test "list function" when there are multiple "function" overloads.
|
||||||
|
|
||||||
|
with_test_prefix "list all overloads" {
|
||||||
|
# Bump up listsize again, to make sure the number of lines to
|
||||||
|
# display before/after each location is computed correctly.
|
||||||
|
gdb_test_no_output "set listsize 10"
|
||||||
|
|
||||||
|
set line_bar_A [gdb_get_line_number "int bar (A)"]
|
||||||
|
set line_bar_B [gdb_get_line_number "int bar (B)"]
|
||||||
|
set lines1 [line_range_pattern [expr $line_bar_A - 5] [expr $line_bar_A + 4]]
|
||||||
|
set lines2 [line_range_pattern [expr $line_bar_B - 5] [expr $line_bar_B + 4]]
|
||||||
|
|
||||||
|
set any "\[^\r\n\]*"
|
||||||
|
set h1_re "file: \"${any}overload.cc\", line number: $line_bar_A"
|
||||||
|
set h2_re "file: \"${any}overload.cc\", line number: $line_bar_B"
|
||||||
|
gdb_test "list bar" "${h1_re}${lines1}\r\n${h2_re}${lines2}"
|
||||||
|
}
|
||||||
|
|
||||||
if ![runto 'XXX::marker2'] then {
|
if ![runto 'XXX::marker2'] then {
|
||||||
perror "couldn't run to XXX::marker2"
|
perror "couldn't run to XXX::marker2"
|
||||||
continue
|
continue
|
||||||
|
Reference in New Issue
Block a user