You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
703 lines
13 KiB
703 lines
13 KiB
http://sourceware.org/ml/gdb-patches/2007-12/msg00397.html |
|
|
|
2007-12-22 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
|
|
* gdb.arch/i386-interface.S, gdb.arch/i386-interface.exp: New files. |
|
|
|
2008-03-02 Jan Kratochvil <jan.kratochvil@redhat.com> |
|
|
|
* gdb.arch/i386-interface.exp: Fix a testcase race. |
|
|
|
--- /dev/null 1 Jan 1970 00:00:00 -0000 |
|
+++ ./gdb/testsuite/gdb.arch/i386-interface.S 22 Dec 2007 19:07:28 -0000 |
|
@@ -0,0 +1,628 @@ |
|
+/* Copyright 2007 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/>. |
|
+ |
|
+ Please email any bugs, comments, and/or additions to this file to: |
|
+ bug-gdb@gnu.org |
|
+ |
|
+ This file is part of the gdb testsuite. |
|
+ |
|
+ This file was produced by: |
|
+ $ gcj -S interface.java -ggdb2 -Wall -m32 |
|
+ from the .java file: |
|
+ interface Interface |
|
+ { |
|
+ } |
|
+ class Class implements Interface |
|
+ { |
|
+ } |
|
+*/ |
|
+ |
|
+ .file "cc28Pp2B.jar" |
|
+ .section .debug_abbrev,"",@progbits |
|
+.Ldebug_abbrev0: |
|
+ .section .debug_info,"",@progbits |
|
+.Ldebug_info0: |
|
+ .section .debug_line,"",@progbits |
|
+.Ldebug_line0: |
|
+ .text |
|
+.Ltext0: |
|
+ .local _MT_Interface |
|
+ .comm _MT_Interface,0,4 |
|
+ .data |
|
+ .align 4 |
|
+ .type _catch_classes_Interface, @object |
|
+ .size _catch_classes_Interface, 24 |
|
+_catch_classes_Interface: |
|
+ .zero 24 |
|
+ .section .rodata |
|
+ .align 2 |
|
+ .type _Utf1, @object |
|
+ .size _Utf1, 4 |
|
+_Utf1: |
|
+ .value 36121 |
|
+ .value 9 |
|
+ .ascii "Interface" |
|
+ .zero 1 |
|
+.globl _ZN9Interface6class$E |
|
+ .data |
|
+ .align 32 |
|
+ .type _ZN9Interface6class$E, @object |
|
+ .size _ZN9Interface6class$E, 144 |
|
+_ZN9Interface6class$E: |
|
+ .long _ZTVN4java4lang5ClassE+8 |
|
+ .long 403000 |
|
+ .long _Utf1 |
|
+ .value 1536 |
|
+ .zero 2 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long _MT_Interface |
|
+ .value 0 |
|
+ .value 6 |
|
+ .long 0 |
|
+ .long 4 |
|
+ .value 0 |
|
+ .value 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long _catch_classes_Interface |
|
+ .long 0 |
|
+ .long 0 |
|
+ .value 0 |
|
+ .byte 1 |
|
+ .zero 1 |
|
+ .long 0 |
|
+ .value 0 |
|
+ .zero 2 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .hidden _ZN9Interface7class$$E |
|
+.globl _ZN9Interface7class$$E |
|
+ .section .rodata |
|
+ .align 4 |
|
+ .type _ZN9Interface7class$$E, @object |
|
+ .size _ZN9Interface7class$$E, 4 |
|
+_ZN9Interface7class$$E: |
|
+ .long _ZN9Interface6class$E |
|
+ .text |
|
+ .align 2 |
|
+.globl _ZN5ClassC1Ev |
|
+ .type _ZN5ClassC1Ev, @function |
|
+_ZN5ClassC1Ev: |
|
+.LFB2: |
|
+ pushl %ebp |
|
+.LCFI0: |
|
+ movl %esp, %ebp |
|
+.LCFI1: |
|
+ subl $24, %esp |
|
+.LCFI2: |
|
+.LBB2: |
|
+#if 0 |
|
+ .file 1 "interface.java" |
|
+#else |
|
+ .file "interface.java" |
|
+#endif |
|
+ .loc 1 4 0 |
|
+ movl 8(%ebp), %eax |
|
+ movl %eax, -4(%ebp) |
|
+ movl -4(%ebp), %eax |
|
+ movl %eax, (%esp) |
|
+ call _ZN4java4lang6ObjectC1Ev |
|
+.LBE2: |
|
+ leave |
|
+ ret |
|
+.LFE2: |
|
+ .size _ZN5ClassC1Ev, .-_ZN5ClassC1Ev |
|
+ .hidden _ZTVN5ClassE |
|
+.globl _ZTVN5ClassE |
|
+ .data |
|
+ .align 32 |
|
+ .type _ZTVN5ClassE, @object |
|
+ .size _ZTVN5ClassE, 40 |
|
+_ZTVN5ClassE: |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long _ZN5Class6class$E |
|
+ .long 4 |
|
+ .long _ZN4java4lang6Object8finalizeEJvv |
|
+ .long _ZN4java4lang6Object8hashCodeEJiv |
|
+ .long _ZN4java4lang6Object6equalsEJbPS1_ |
|
+ .long _ZN4java4lang6Object8toStringEJPNS0_6StringEv |
|
+ .long _ZN4java4lang6Object5cloneEJPS1_v |
|
+ .long _ZN4java4lang6Object22throwNoSuchMethodErrorEJvv |
|
+ .set .L_ZN5ClassC1Ev0,_ZN5ClassC1Ev |
|
+ .section .rodata |
|
+ .align 2 |
|
+ .type _Utf2, @object |
|
+ .size _Utf2, 4 |
|
+_Utf2: |
|
+ .value 626 |
|
+ .value 6 |
|
+ .ascii "<init>" |
|
+ .zero 1 |
|
+ .align 2 |
|
+ .type _Utf3, @object |
|
+ .size _Utf3, 4 |
|
+_Utf3: |
|
+ .value 39797 |
|
+ .value 3 |
|
+ .ascii "()V" |
|
+ .zero 1 |
|
+ .data |
|
+ .align 4 |
|
+ .type _MT_Class, @object |
|
+ .size _MT_Class, 20 |
|
+_MT_Class: |
|
+ .long _Utf2 |
|
+ .long _Utf3 |
|
+ .value 16384 |
|
+ .value -1 |
|
+ .long .L_ZN5ClassC1Ev0 |
|
+ .long 0 |
|
+ .align 4 |
|
+ .type _IF_Class, @object |
|
+ .size _IF_Class, 4 |
|
+_IF_Class: |
|
+ .long _ZN9Interface6class$E |
|
+ .align 4 |
|
+ .type _catch_classes_Class, @object |
|
+ .size _catch_classes_Class, 24 |
|
+_catch_classes_Class: |
|
+ .zero 24 |
|
+ .section .rodata |
|
+ .align 2 |
|
+ .type _Utf4, @object |
|
+ .size _Utf4, 4 |
|
+_Utf4: |
|
+ .value 47448 |
|
+ .value 5 |
|
+ .ascii "Class" |
|
+ .zero 1 |
|
+.globl _ZN5Class6class$E |
|
+ .data |
|
+ .align 32 |
|
+ .type _ZN5Class6class$E, @object |
|
+ .size _ZN5Class6class$E, 144 |
|
+_ZN5Class6class$E: |
|
+ .long _ZTVN4java4lang5ClassE+8 |
|
+ .long 403000 |
|
+ .long _Utf4 |
|
+ .value 32 |
|
+ .zero 2 |
|
+ .long _ZN4java4lang6Object6class$E |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long _MT_Class |
|
+ .value 1 |
|
+ .value 6 |
|
+ .long 0 |
|
+ .long 4 |
|
+ .value 0 |
|
+ .value 0 |
|
+ .long _ZTVN5ClassE+8 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long _catch_classes_Class |
|
+ .long _IF_Class |
|
+ .long 0 |
|
+ .value 1 |
|
+ .byte 1 |
|
+ .zero 1 |
|
+ .long 0 |
|
+ .value 0 |
|
+ .zero 2 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .long 0 |
|
+ .hidden _ZN5Class7class$$E |
|
+.globl _ZN5Class7class$$E |
|
+ .section .rodata |
|
+ .align 4 |
|
+ .type _ZN5Class7class$$E, @object |
|
+ .size _ZN5Class7class$$E, 4 |
|
+_ZN5Class7class$$E: |
|
+ .long _ZN5Class6class$E |
|
+ .section .jcr,"aw",@progbits |
|
+ .align 4 |
|
+ .long _ZN9Interface6class$E |
|
+ .long _ZN5Class6class$E |
|
+ .section .debug_frame,"",@progbits |
|
+.Lframe0: |
|
+ .long .LECIE0-.LSCIE0 |
|
+.LSCIE0: |
|
+ .long 0xffffffff |
|
+ .byte 0x1 |
|
+ .string "" |
|
+ .uleb128 0x1 |
|
+ .sleb128 -4 |
|
+ .byte 0x8 |
|
+ .byte 0xc |
|
+ .uleb128 0x4 |
|
+ .uleb128 0x4 |
|
+ .byte 0x88 |
|
+ .uleb128 0x1 |
|
+ .align 4 |
|
+.LECIE0: |
|
+.LSFDE0: |
|
+ .long .LEFDE0-.LASFDE0 |
|
+.LASFDE0: |
|
+ .long .Lframe0 |
|
+ .long .LFB2 |
|
+ .long .LFE2-.LFB2 |
|
+ .byte 0x4 |
|
+ .long .LCFI0-.LFB2 |
|
+ .byte 0xe |
|
+ .uleb128 0x8 |
|
+ .byte 0x85 |
|
+ .uleb128 0x2 |
|
+ .byte 0x4 |
|
+ .long .LCFI1-.LCFI0 |
|
+ .byte 0xd |
|
+ .uleb128 0x5 |
|
+ .align 4 |
|
+.LEFDE0: |
|
+ .section .eh_frame,"a",@progbits |
|
+.Lframe1: |
|
+ .long .LECIE1-.LSCIE1 |
|
+.LSCIE1: |
|
+ .long 0x0 |
|
+ .byte 0x1 |
|
+.globl __gcj_personality_v0 |
|
+ .string "zP" |
|
+ .uleb128 0x1 |
|
+ .sleb128 -4 |
|
+ .byte 0x8 |
|
+ .uleb128 0x5 |
|
+ .byte 0x0 |
|
+ .long __gcj_personality_v0 |
|
+ .byte 0xc |
|
+ .uleb128 0x4 |
|
+ .uleb128 0x4 |
|
+ .byte 0x88 |
|
+ .uleb128 0x1 |
|
+ .align 4 |
|
+.LECIE1: |
|
+.LSFDE1: |
|
+ .long .LEFDE1-.LASFDE1 |
|
+.LASFDE1: |
|
+ .long .LASFDE1-.Lframe1 |
|
+ .long .LFB2 |
|
+ .long .LFE2-.LFB2 |
|
+ .uleb128 0x0 |
|
+ .byte 0x4 |
|
+ .long .LCFI0-.LFB2 |
|
+ .byte 0xe |
|
+ .uleb128 0x8 |
|
+ .byte 0x85 |
|
+ .uleb128 0x2 |
|
+ .byte 0x4 |
|
+ .long .LCFI1-.LCFI0 |
|
+ .byte 0xd |
|
+ .uleb128 0x5 |
|
+ .align 4 |
|
+.LEFDE1: |
|
+ .text |
|
+.Letext0: |
|
+ .section .debug_loc,"",@progbits |
|
+.Ldebug_loc0: |
|
+.LLST0: |
|
+ .long .LFB2-.Ltext0 |
|
+ .long .LCFI0-.Ltext0 |
|
+ .value 0x2 |
|
+ .byte 0x74 |
|
+ .sleb128 4 |
|
+ .long .LCFI0-.Ltext0 |
|
+ .long .LCFI1-.Ltext0 |
|
+ .value 0x2 |
|
+ .byte 0x74 |
|
+ .sleb128 8 |
|
+ .long .LCFI1-.Ltext0 |
|
+ .long .LFE2-.Ltext0 |
|
+ .value 0x2 |
|
+ .byte 0x75 |
|
+ .sleb128 8 |
|
+ .long 0x0 |
|
+ .long 0x0 |
|
+ .section .debug_info |
|
+ .long 0x117 |
|
+ .value 0x2 |
|
+ .long .Ldebug_abbrev0 |
|
+ .byte 0x4 |
|
+ .uleb128 0x1 |
|
+ .string "GNU Java 4.3.0 20071221 (experimental)" |
|
+ .byte 0xb |
|
+ .string "interface.java" |
|
+ .string "/home/jkratoch/redhat/bz371831" |
|
+ .long .Ltext0 |
|
+ .long .Letext0 |
|
+ .long .Ldebug_line0 |
|
+ .uleb128 0x2 |
|
+ .string "Interface" |
|
+ .byte 0x4 |
|
+ .byte 0x1 |
|
+ .byte 0x0 |
|
+ .long 0x8e |
|
+ .long 0x8e |
|
+ .uleb128 0x3 |
|
+ .long 0x8e |
|
+ .byte 0x2 |
|
+ .byte 0x23 |
|
+ .uleb128 0x0 |
|
+ .byte 0x1 |
|
+ .byte 0x0 |
|
+ .uleb128 0x4 |
|
+ .string "java.lang.Object" |
|
+ .byte 0x1 |
|
+ .uleb128 0x5 |
|
+ .string "Class" |
|
+ .byte 0x4 |
|
+ .byte 0x1 |
|
+ .byte 0x0 |
|
+ .long 0x8e |
|
+ .long 0xe8 |
|
+ .uleb128 0x3 |
|
+ .long 0x8e |
|
+ .byte 0x2 |
|
+ .byte 0x23 |
|
+ .uleb128 0x0 |
|
+ .byte 0x1 |
|
+ .uleb128 0x6 |
|
+ .long 0x6e |
|
+ .byte 0x2 |
|
+ .byte 0x23 |
|
+ .uleb128 0x0 |
|
+ .byte 0x1 |
|
+ .byte 0x1 |
|
+ .uleb128 0x7 |
|
+ .byte 0x1 |
|
+ .string "<init>" |
|
+ .byte 0x1 |
|
+ .byte 0x0 |
|
+ .string "_ZN5ClassC1Ev" |
|
+ .byte 0x1 |
|
+ .uleb128 0x8 |
|
+ .long 0xe8 |
|
+ .byte 0x1 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x9 |
|
+ .byte 0x4 |
|
+ .long 0xa1 |
|
+ .uleb128 0xa |
|
+ .long 0xc6 |
|
+ .long .LFB2 |
|
+ .long .LFE2 |
|
+ .long .LLST0 |
|
+ .long 0x114 |
|
+ .uleb128 0xb |
|
+ .long 0xe8 |
|
+ .byte 0x2 |
|
+ .byte 0x91 |
|
+ .sleb128 0 |
|
+ .uleb128 0xc |
|
+ .long 0x114 |
|
+ .byte 0x2 |
|
+ .byte 0x91 |
|
+ .sleb128 -12 |
|
+ .byte 0x0 |
|
+ .uleb128 0x9 |
|
+ .byte 0x4 |
|
+ .long 0x8e |
|
+ .byte 0x0 |
|
+ .section .debug_abbrev |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x11 |
|
+ .byte 0x1 |
|
+ .uleb128 0x25 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0xb |
|
+ .uleb128 0x3 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x1b |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x11 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x12 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x10 |
|
+ .uleb128 0x6 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x2 |
|
+ .uleb128 0x38 |
|
+ .byte 0x1 |
|
+ .uleb128 0x3 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0xb |
|
+ .uleb128 0xb |
|
+ .uleb128 0x3a |
|
+ .uleb128 0xb |
|
+ .uleb128 0x3b |
|
+ .uleb128 0xb |
|
+ .uleb128 0x1d |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x13 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x3 |
|
+ .uleb128 0x1c |
|
+ .byte 0x0 |
|
+ .uleb128 0x49 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x38 |
|
+ .uleb128 0xa |
|
+ .uleb128 0x32 |
|
+ .uleb128 0xb |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x4 |
|
+ .uleb128 0x2 |
|
+ .byte 0x0 |
|
+ .uleb128 0x3 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x3c |
|
+ .uleb128 0xc |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x5 |
|
+ .uleb128 0x2 |
|
+ .byte 0x1 |
|
+ .uleb128 0x3 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0xb |
|
+ .uleb128 0xb |
|
+ .uleb128 0x3a |
|
+ .uleb128 0xb |
|
+ .uleb128 0x3b |
|
+ .uleb128 0xb |
|
+ .uleb128 0x1d |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x13 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x6 |
|
+ .uleb128 0x1c |
|
+ .byte 0x0 |
|
+ .uleb128 0x49 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x38 |
|
+ .uleb128 0xa |
|
+ .uleb128 0x4c |
|
+ .uleb128 0xb |
|
+ .uleb128 0x32 |
|
+ .uleb128 0xb |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x7 |
|
+ .uleb128 0x2e |
|
+ .byte 0x1 |
|
+ .uleb128 0x3f |
|
+ .uleb128 0xc |
|
+ .uleb128 0x3 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x3a |
|
+ .uleb128 0xb |
|
+ .uleb128 0x3b |
|
+ .uleb128 0xb |
|
+ .uleb128 0x2007 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x3c |
|
+ .uleb128 0xc |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x8 |
|
+ .uleb128 0x5 |
|
+ .byte 0x0 |
|
+ .uleb128 0x49 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x34 |
|
+ .uleb128 0xc |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0x9 |
|
+ .uleb128 0xf |
|
+ .byte 0x0 |
|
+ .uleb128 0xb |
|
+ .uleb128 0xb |
|
+ .uleb128 0x49 |
|
+ .uleb128 0x13 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0xa |
|
+ .uleb128 0x2e |
|
+ .byte 0x1 |
|
+ .uleb128 0x47 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x11 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x12 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x40 |
|
+ .uleb128 0x6 |
|
+ .uleb128 0x1 |
|
+ .uleb128 0x13 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0xb |
|
+ .uleb128 0x5 |
|
+ .byte 0x0 |
|
+ .uleb128 0x49 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x2 |
|
+ .uleb128 0xa |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .uleb128 0xc |
|
+ .uleb128 0x34 |
|
+ .byte 0x0 |
|
+ .uleb128 0x49 |
|
+ .uleb128 0x13 |
|
+ .uleb128 0x2 |
|
+ .uleb128 0xa |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .byte 0x0 |
|
+ .section .debug_pubnames,"",@progbits |
|
+ .long 0x15 |
|
+ .value 0x2 |
|
+ .long .Ldebug_info0 |
|
+ .long 0x11b |
|
+ .long 0xee |
|
+ .string "()" |
|
+ .long 0x0 |
|
+ .section .debug_aranges,"",@progbits |
|
+ .long 0x1c |
|
+ .value 0x2 |
|
+ .long .Ldebug_info0 |
|
+ .byte 0x4 |
|
+ .byte 0x0 |
|
+ .value 0x0 |
|
+ .value 0x0 |
|
+ .long .Ltext0 |
|
+ .long .Letext0-.Ltext0 |
|
+ .long 0x0 |
|
+ .long 0x0 |
|
+ .ident "GCC: (GNU) 4.3.0 20071221 (experimental)" |
|
+ .section .note.GNU-stack,"",@progbits |
|
--- /dev/null 1 Jan 1970 00:00:00 -0000 |
|
+++ ./gdb/testsuite/gdb.arch/i386-interface.exp 22 Dec 2007 19:07:28 -0000 |
|
@@ -0,0 +1,59 @@ |
|
+# Copyright 2007 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/>. |
|
+ |
|
+# Please email any bugs, comments, and/or additions to this file to: |
|
+# bug-gdb@gnu.org |
|
+ |
|
+# This file is part of the gdb testsuite. |
|
+ |
|
+# Test basis recognization of DW_TAG_interface_type. |
|
+# GCC java_classify_record() produces it if returns RECORD_IS_INTERFACE. |
|
+ |
|
+if {![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"]} then { |
|
+ verbose "Skipping i386 Java DW_TAG_interface_type test." |
|
+ return |
|
+} |
|
+ |
|
+set testfile "i386-interface" |
|
+set srcfile ${testfile}.S |
|
+set binfile ${objdir}/${subdir}/${testfile}.o |
|
+ |
|
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {debug additional_flags=-m32}] != "" } { |
|
+ untested i386-gnu-cfi.exp |
|
+ return -1 |
|
+} |
|
+ |
|
+# Get things started. |
|
+ |
|
+gdb_exit |
|
+gdb_start |
|
+gdb_reinitialize_dir $srcdir/$subdir |
|
+gdb_load ${binfile} |
|
+ |
|
+gdb_test "set language java" |
|
+ |
|
+set test "ptype Interface" |
|
+gdb_test_multiple $test $test { |
|
+ -re "type = class Interface *extends java.lang.Object \{.*$gdb_prompt $" { |
|
+ pass $test |
|
+ } |
|
+} |
|
+ |
|
+set test "ptype Class" |
|
+gdb_test_multiple $test $test { |
|
+ -re "type = class Class *extends java.lang.Object implements Interface \{.*$gdb_prompt $" { |
|
+ pass $test |
|
+ } |
|
+}
|
|
|