mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
gdb/testsuite/
* gdb.ada/rdv_wait.exp (set debug-file-directory): New command. * gdb.arch/i386-cfi-notcurrent.S: New file. * gdb.arch/i386-cfi-notcurrent.exp: New file.
This commit is contained in:
parent
1591a1e852
commit
1e8e8b5114
@ -1,3 +1,9 @@
|
||||
2012-08-27 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.ada/rdv_wait.exp (set debug-file-directory): New command.
|
||||
* gdb.arch/i386-cfi-notcurrent.S: New file.
|
||||
* gdb.arch/i386-cfi-notcurrent.exp: New file.
|
||||
|
||||
2012-08-27 Wei-cheng Wang <cole945@gmail.com>
|
||||
Yao Qi <yao@codesourcery.com>
|
||||
Pedro Alves <palves@redhat.com>
|
||||
|
@ -23,6 +23,9 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" }
|
||||
|
||||
clean_restart ${testfile}
|
||||
|
||||
# This test won't work properly if system debuginfo is installed.
|
||||
gdb_test_no_output "set debug-file-directory"
|
||||
|
||||
runto "break_me"
|
||||
|
||||
# Switch to task 2, and verify that GDB is able to unwind all the way
|
||||
|
76
gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
Normal file
76
gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
Normal file
@ -0,0 +1,76 @@
|
||||
/* Copyright 2012 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
|
||||
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/>. */
|
||||
|
||||
/* Testcase compiled by gcc -m32 -S -fasynchronous-unwind-tables -O2:
|
||||
|
||||
static int __attribute__ ((regparm (0), stdcall, noinline, noclone))
|
||||
f (int x)
|
||||
{
|
||||
return x;
|
||||
}
|
||||
static int __attribute__ ((noinline, noclone))
|
||||
g (void)
|
||||
{
|
||||
return f (1) + 1;
|
||||
}
|
||||
int
|
||||
main (void)
|
||||
{
|
||||
return g () + 1;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
.text
|
||||
.type f, @function
|
||||
f:
|
||||
.LFB0:
|
||||
.cfi_startproc
|
||||
movl 4(%esp), %eax
|
||||
ret $4
|
||||
.cfi_endproc
|
||||
.LFE0:
|
||||
.size f, .-f
|
||||
.type g, @function
|
||||
g:
|
||||
.LFB1:
|
||||
.cfi_startproc
|
||||
subl $4, %esp
|
||||
.cfi_def_cfa_offset 8
|
||||
movl $1, (%esp)
|
||||
call f
|
||||
.cfi_def_cfa_offset 4
|
||||
subl $4, %esp
|
||||
.cfi_def_cfa_offset 8
|
||||
addl $1, %eax
|
||||
addl $4, %esp
|
||||
.cfi_def_cfa_offset 4
|
||||
ret
|
||||
.cfi_endproc
|
||||
.LFE1:
|
||||
.size g, .-g
|
||||
.globl main
|
||||
.type main, @function
|
||||
main:
|
||||
.LFB2:
|
||||
.cfi_startproc
|
||||
call g
|
||||
addl $1, %eax
|
||||
ret
|
||||
.cfi_endproc
|
||||
.LFE2:
|
||||
.size main, .-main
|
34
gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
Normal file
34
gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
Normal file
@ -0,0 +1,34 @@
|
||||
# Copyright 2012 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/>.
|
||||
|
||||
# [RFA] DWARF frame unwinder executes one too many rows
|
||||
# http://sourceware.org/ml/gdb-patches/2012-07/msg00650.html
|
||||
|
||||
if {(![istarget "x86_64-*-*"] && ![istarget "i?86-*-*"]) || ![is_ilp32_target] } {
|
||||
return 0
|
||||
}
|
||||
|
||||
set testfile "i386-cfi-notcurrent"
|
||||
set srcfile ${testfile}.S
|
||||
|
||||
if [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {nodebug}] {
|
||||
return -1
|
||||
}
|
||||
|
||||
if ![runto f] {
|
||||
return -1
|
||||
}
|
||||
|
||||
gdb_test "backtrace" "#0 \[^\r\n\]* f \[^\r\n\]*\r\n#1 \[^\r\n\]* g \[^\r\n\]*\r\n#2 \[^\r\n\]* main \[^\r\n\]*"
|
Loading…
Reference in New Issue
Block a user