binutils-gdb/gdb/testsuite/gdb.base/disasm-end-cu.exp
Andrew Burgess 9011945e46 http://sourceware.org/ml/gdb-patches/2010-12/msg00300.html
Improve the ordering of line table entries when dealing with the end
of sequence markers.  This will allow us to disassemble over the border
between two compile units while also displaying source code information.
2011-02-03 14:45:37 +00:00

50 lines
2.0 KiB
Plaintext

# Copyright (C) 2010, 2011 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This test tries to disassemble over the boundary between two compilation
# units displaying source lines. This checks that the disassemble routine
# can handle our use of line number 0 to mark the end of sequence.
if { [prepare_for_testing disasm-end-cu.exp "disasm-end-cu" {disasm-end-cu-1.c disasm-end-cu-2.c} {debug}] } {
return -1
}
if ![runto_main] {
return -1
}
set main_addr [get_hexadecimal_valueof "&main" "0"]
set dummy_3_addr [get_hexadecimal_valueof "&dummy_3" "0"]
if {$main_addr == 0 || $dummy_3_addr == 0 || $dummy_3_addr <= $main_addr} {
fail "Unable to extract required addresses, or addresses out of order"
return -1
}
gdb_test_multiple "disassemble /m ${main_addr},${dummy_3_addr}" "Disassemble address range with source" {
-re "Dump of assembler code from ${main_addr} to ${dummy_3_addr}:\r\nEnd of assembler dump\." {
fail "No output from the disassemble command"
}
-re "Line number 0 out of range;.* has $decimal lines\." {
fail "The disassemble command failed"
}
-re "Dump of assembler code from ${main_addr} to ${dummy_3_addr}:\r\n.*main.*End of assembler dump\." {
pass "disassemble command returned some output"
}
-re ".*$gdb_prompt $" {
fail "Unexpected output from disassemble command"
}
}