OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gdb-7.2/] [gdb/] [testsuite/] [gdb.base/] [gcore-buffer-overflow.exp] - Blame information for rev 841

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 330 jeremybenn
# Copyright 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
2
 
3
# This program is free software; you can redistribute it and/or modify
4
# it under the terms of the GNU General Public License as published by
5
# the Free Software Foundation; either version 3 of the License, or
6
# (at your option) any later version.
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
# GNU General Public License for more details.
12
#
13
# You should have received a copy of the GNU General Public License
14
# along with this program.  If not, see .
15
 
16
# Test GDB's internal buffers safety for the GCORE command.
17
 
18
if $tracelevel then {
19
        strace $tracelevel
20
}
21
 
22
 
23
set testfile "gcore-buffer-overflow"
24
set srcfile  ${testfile}.c
25
# The ${binfile} basename needs to exceed 80 characters (`sizeof (psargs)')
26
# plus some additional data to overwrite the stack frame.
27
set pattern  01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
28
set binfile  ${objdir}/${subdir}/${testfile}-${pattern}
29
 
30
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
31
     untested gcore.exp
32
     return -1
33
}
34
 
35
# Start with a fresh gdb.
36
 
37
gdb_exit
38
gdb_start
39
gdb_reinitialize_dir $srcdir/$subdir
40
gdb_load ${binfile}
41
 
42
# Does this gdb support gcore?
43
gdb_test_multiple "help gcore" "help gcore" {
44
    -re "Undefined command: .gcore.*$gdb_prompt $" {
45
        # gcore command not supported -- nothing to test here.
46
        unsupported "gdb does not support gcore on this target"
47
        return -1;
48
    }
49
    -re "Save a core file .*$gdb_prompt $" {
50
        pass "help gcore"
51
    }
52
}
53
 
54
gdb_test_no_output "set args ${pattern}"        \
55
    "Set buffer exceeding arguments"
56
 
57
if { ! [ runto_main ] } then {
58
    untested gcore-buffer-overflow.exp
59
    return -1
60
}
61
 
62
set escapedfilename [string_to_regexp ${objdir}/${subdir}/gcore-buffer-overflow.test]
63
 
64
set test "save a corefile"
65
gdb_test_multiple "gcore ${objdir}/${subdir}/gcore-buffer-overflow.test" $test {
66
    -re "Saved corefile ${escapedfilename}\[\r\n\]+$gdb_prompt $" {
67
        pass $test
68
    }
69
    -re "Can't create a corefile\[\r\n\]+$gdb_prompt $" {
70
        unsupported $test
71
    }
72
    eof {
73
        fail $test
74
    }
75
}

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.