OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/tags/gnu-src/gdb-6.8/pre-binutils-2.20.1-sync/gdb/testsuite/gdb.objc
    from Rev 157 to Rev 223
    Reverse comparison

Rev 157 → Rev 223

/Makefile.in
0,0 → 1,22
VPATH = @srcdir@
srcdir = @srcdir@
 
EXECUTABLES = basicclass
 
all:
@echo "Nothing to be done for all..."
 
info:
install-info:
dvi:
install:
uninstall: force
installcheck:
check:
 
clean mostlyclean:
-rm -f *~ *.o *.ci
-rm -f core ${EXECUTABLES}
 
distclean maintainer-clean realclean: clean
-rm -f Makefile config.status config.log
/basicclass.exp
0,0 → 1,194
# Copyright 2003, 2004, 2006, 2007, 2008 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 file was written by Adam Fedor (fedor@gnu.org)
 
if $tracelevel then {
strace $tracelevel
}
 
set testfile "basicclass"
set srcfile ${testfile}.m
set binfile ${objdir}/${subdir}/${testfile}
 
#
# Objective-C program compilation isn't standard. We need to figure out
# which libraries to link in. Most of the time it uses pthread
#
if {[gdb_compile_objc "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ]] != "" } {
return -1
}
 
#
# Deduce language of main()
#
 
proc deduce_language_of_main {} {
global gdb_prompt
 
# See what language gdb thinks main() is, prior to reading full symbols.
# I think this fails for COFF targets.
send_gdb "show language\n"
gdb_expect {
-re ".* source language is \"auto; currently objective-c\".*$gdb_prompt $" {
pass "deduced language is Objective-C, before full symbols"
}
-re ".*$gdb_prompt $" {
fail "source language not correct for Objective-C (psymtabs only)"
return
}
timeout {
fail "can't show language (timeout)"
return
}
}
 
runto_main
 
# See if our idea of the language has changed.
 
send_gdb "show language\n"
gdb_expect {
-re ".* source language is \"auto; currently objective-c\".*$gdb_prompt $" {
pass "deduced language is Objective-C, after full symbols"
}
-re ".*$gdb_prompt $" {
fail "source language not correct for Objective-C (full symbols)"
return
}
timeout {
fail "can't show language (timeout)"
return
}
}
}
 
proc do_objc_tests {} {
global prms_id
global bug_id
global subdir
global objdir
global srcdir
global binfile
global gdb_prompt
 
set prms_id 0
set bug_id 0
 
# Start with a fresh gdb.
 
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
 
deduce_language_of_main
}
 
do_objc_tests
 
#
# Breakpoint tests
#
gdb_test "break doIt" \
"Breakpoint.*at.* file .*$srcfile, line.29.*" \
"breakpoint method"
 
gdb_test "break takeArg:" \
"Breakpoint.*at.* file .*$srcfile, line.34.*" \
"breakpoint method with colon"
 
gdb_test "break newWithArg:" \
"Breakpoint.*at.* file .*$srcfile, line.22.*" \
"breakpoint class method with colon"
 
#
# Continue until breakpoint (test re-setting breakpoint)
#
gdb_test continue \
"Continuing\\..*Breakpoint \[0-9\]+, -.BasicClass takeArg:. \\(self=.*, _cmd=.*, arg=.*\\) at .*$srcfile:34.*" \
"continue until method breakpoint"
 
#
# Test resetting breakpoints when re-running program
#
gdb_run_cmd
gdb_expect {
-re "Breakpoint \[0-9\]+,.*main .*argc.*argv.* at .*$srcfile:.*$gdb_prompt $"\
{ pass "resetting breakpoints when rerunning" }
-re ".*$gdb_prompt $" { fail "resetting breakpoints when rerunning" }
timeout { fail "resetting breakpoints when rerunning" }
}
 
#
# Continue until breakpoint (test re-setting breakpoint)
#
gdb_test continue \
"Continuing\\..*Breakpoint \[0-9\]+, -.BasicClass takeArg:. \\(self=.*, _cmd=.*, arg=.*\\) at .*$srcfile:34.*" \
"continue until method breakpoint"
 
#
# Test printing objects
#
gdb_test "print object" \
"\\$\[0-9\] = .*0x0" \
" print an ivar of self"
 
gdb_test "print self" \
"\\$\[0-9\] = \\(.*BasicClass \\*\\) 0x\[0-9a-f\]+" \
" print self"
 
gdb_test "print \*self" \
"\\$\[0-9\] = \{{?isa = 0x\[0-9a-f\]+}?, object = 0x0\}" \
" print contents of self"
 
#
# Break in a category
#
gdb_test "break hiddenMethod" \
"Breakpoint.*at.* file .*$srcfile, line.61." \
"breakpoint in category method"
 
 
#
# Continue until breakpoint (test re-setting category breakpoint)
#
gdb_test continue \
"Continuing\\..*Breakpoint \[0-9\]+, -.BasicClass\\(Private\\) hiddenMethod. \\(self=.*, _cmd=.*\\) at .*$srcfile:61.*" \
"continue until category method"
 
#
# Test calling Objective-C methods
#
gdb_test "print \[self printHi\]" \
"Hi.*\\$\[0-9\] = \\(.*objc_object \\*\\) 0x\[0-9a-f\]+" \
"Call an Objective-C method with no arguments"
 
gdb_test "print \[self printNumber: 42\]" \
"42.*\\$\[0-9\] = 43" \
"Call an Objective-C method with one argument"
 
#
# Test printing the object description
#
gdb_test "print-object object" \
"BasicClass gdb test object" \
"Use of the print-object command"
 
gdb_test "po self" \
"BasicClass gdb test object" \
"Use of the po (print-object) command"
 
 
/basicclass.m
0,0 → 1,81
#include <objc/Object.h>
 
@interface BasicClass: Object
{
id object;
}
+ newWithArg: arg;
- doIt;
- takeArg: arg;
- printHi;
- (int) printNumber: (int)number;
- (const char *) myDescription;
@end
 
@interface BasicClass (Private)
- hiddenMethod;
@end
 
@implementation BasicClass
+ newWithArg: arg
{
id obj = [self new];
[obj takeArg: arg];
return obj;
}
 
- doIt
{
return self;
}
 
- takeArg: arg
{
object = arg;
[self hiddenMethod];
return self;
}
 
- printHi
{
printf("Hi\n");
return self;
}
 
- (int) printNumber: (int)number
{
printf("%d\n", number);
return number+1;
}
 
- (const char *) myDescription
{
return "BasicClass gdb test object";
}
 
@end
 
@implementation BasicClass (Private)
- hiddenMethod
{
return self;
}
@end
 
int main (int argc, const char *argv[])
{
id obj;
obj = [BasicClass new];
[obj takeArg: obj];
return 0;
}
 
const char *_NSPrintForDebugger(id object)
{
/* This is not really what _NSPrintForDebugger should do, but it
is a simple test if gdb can call this function */
if (object && [object respondsTo: @selector(myDescription)])
return [object myDescription];
 
return NULL;
}
/nondebug.exp
0,0 → 1,76
# Copyright 2003, 2007, 2008 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 file tests decoding non-debuggable Objective-C symbols
 
# This file was written by Adam Fedor (fedor@gnu.org)
 
if $tracelevel then {
strace $tracelevel
}
 
set testfile "nondebug"
set srcfile ${testfile}.m
set binfile ${objdir}/${subdir}/${testfile}
 
#
# Objective-C program compilation isn't standard. We need to figure out
# which libraries to link in. Most of the time it uses pthread
#
if {[gdb_compile_objc "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list ] ] != "" } {
return -1
}
 
proc do_objc_tests {} {
global prms_id
global bug_id
global subdir
global objdir
global srcdir
global binfile
global gdb_prompt
 
set prms_id 0
set bug_id 0
 
# Start with a fresh gdb.
 
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
 
}
 
do_objc_tests
 
#
# Break on multiply defined non-debuggable symbol (PR objc/1236)
#
set name "break on non-debuggable method"
gdb_test_multiple "break someMethod" $name \
{
-re "\\\[0\\\] cancel\r\n\\\[1\\\] all\r\n\\\[2\\\]\[ \]+-.NonDebug someMethod.*\\\[3\\\]\[ \]+-.NonDebug2 someMethod.*" {
send_gdb "2\n"
exp_continue
}
-re "\\\[0\\\] cancel\r\n\\\[1\\\] all\r\n> " {
gdb_test "0" "" ""
kfail "gdb/1236" $name
}
-re "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+.*$gdb_prompt $" { pass $name }
-re ".*$gdb_prompt $" { kfail "gdb/1236" $name }
}
 
/nondebug.m
0,0 → 1,38
#include <objc/Object.h>
 
@interface NonDebug: Object
{
}
@end
@interface NonDebug2: Object
{
}
@end
 
@implementation NonDebug
 
- someMethod
{
printf("method someMethod\n");
return self;
}
 
@end
@implementation NonDebug2
 
- someMethod
{
printf("method2 someMethod\n");
return self;
}
 
@end
 
 
int main (int argc, const char *argv[])
{
id obj;
obj = [NonDebug new];
[obj someMethod];
return 0;
}
/objcdecode.exp
0,0 → 1,86
# Copyright 2003, 2007, 2008 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 file tests decoding of Objective-C symbols
 
# This file was written by Adam Fedor (fedor@gnu.org)
 
if $tracelevel then {
strace $tracelevel
}
 
set testfile "objcdecode"
set srcfile ${testfile}.m
set binfile ${objdir}/${subdir}/${testfile}
 
#
# Objective-C program compilation isn't standard. We need to figure out
# which libraries to link in. Most of the time it uses pthread
#
if {[gdb_compile_objc "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug ]] != "" } {
return -1
}
 
proc do_objc_tests {} {
global prms_id
global bug_id
global subdir
global objdir
global srcdir
global binfile
global gdb_prompt
 
set prms_id 0
set bug_id 0
 
# Start with a fresh gdb.
 
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile
 
}
 
do_objc_tests
 
#
# Break on multiply defined method (PR objc/1236)
#
set name "break on multiply defined method"
gdb_test_multiple "break multipleDef" $name \
{
-re "\\\[0\\\] cancel\r\n\\\[1\\\] all\r\n\\\[2\\\] -.Decode multipleDef. at .*\r\n\\\[3\\\] multipleDef at .*\r\n> $" {
send_gdb "3\n"
exp_continue
}
-re "Breakpoint \[0-9\]+ at 0x\[0-9a-f\]+: file .*\r\n$gdb_prompt $" { pass $name }
-re ".*$gdb_prompt $" { kfail "gdb/1236" $name }
}
 
set name "continue after break on multiply defined symbol"
gdb_run_cmd
gdb_test_multiple "" $name \
{
-re "Breakpoint \[0-9\]+, multipleDef \\\(\\\) at .*\r\n$gdb_prompt $" {
pass $name
}
-re "\\\[0\\\] cancel\r\n\\\[1\\\] all\r\n\\\[2\\\] -.Decode multipleDef. at .*\r\n\\\[3\\\] multipleDef at .*\r\n> $" {
send_gdb "0\n"
kfail "gdb/1238" $name
# gdb is in a bad state here.
# It would be difficult to do any more tests after this.
}
}
/objcdecode.m
0,0 → 1,49
#include <objc/Object.h>
 
@interface Decode: Object
{
}
- multipleDef;
- (const char *) myDescription;
@end
 
@implementation Decode
 
- multipleDef
{
printf("method multipleDef\n");
return self;
}
 
- (const char *) myDescription
{
return "Decode gdb test object";
}
 
@end
 
int
multipleDef()
{
printf("function multipleDef\n");
return 0;
}
 
int main (int argc, const char *argv[])
{
id obj;
obj = [Decode new];
multipleDef();
[obj multipleDef];
return 0;
}
 
const char *_NSPrintForDebugger(id object)
{
/* This is not really what _NSPrintForDebugger should do, but it
is a simple test if gdb can call this function */
if (object && [object respondsTo: @selector(myDescription)])
return [object myDescription];
 
return NULL;
}

powered by: WebSVN 2.1.0

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