From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19156 invoked by alias); 10 Aug 2007 10:10:10 -0000 Received: (qmail 19050 invoked by uid 22791); 10 Aug 2007 10:10:08 -0000 X-Spam-Check-By: sourceware.org Received: from province.act-europe.fr (HELO province.act-europe.fr) (212.157.227.214) by sourceware.org (qpsmtpd/0.31) with ESMTP; Fri, 10 Aug 2007 10:10:05 +0000 Received: by province.act-europe.fr (Postfix, from userid 560) id 699F71659B3; Fri, 10 Aug 2007 12:10:03 +0200 (CEST) Date: Fri, 10 Aug 2007 10:10:00 -0000 From: Jerome Guitton To: gdb-patches@sources.redhat.com Subject: [RFA/testsuite] backtrace in mixed language application Message-ID: <20070810101003.GA33739@adacore.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="H1spWtNR+x+ondvy" Content-Disposition: inline User-Agent: Mutt/1.4.2.2i Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2007-08/txt/msg00202.txt.bz2 --H1spWtNR+x+ondvy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 350 Testcase for http://sourceware.org/ml/gdb-patches/2007-08/msg00201.html, to commit in the gdb.ada directory. 2007-08-10 Jerome Guitton * gdb.ada/lang_switch/lang_switch.adb: New file. * gdb.ada/lang_switch/foo.c: Ditto. * gdb.ada/lang_switch.exp: New testcase. OK to add? Thanks in advance, Jerome --H1spWtNR+x+ondvy Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="lang_switch.exp" Content-length: 1673 # 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 2 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, # USA. if $tracelevel then { strace $tracelevel } load_lib "ada.exp" set testdir "lang_switch" set testfile "${testdir}/lang_switch" set cfile "${testdir}/foo" set adasrcfile ${srcdir}/${subdir}/${testfile}.adb set csrcfile ${srcdir}/${subdir}/${cfile}.c set cobject ${objdir}/${subdir}/${cfile}.o set binfile ${objdir}/${subdir}/${testfile} file mkdir ${objdir}/${subdir}/${testdir} gdb_compile "${csrcfile}" "${cobject}" object [list debug] if {[gdb_compile_ada "${adasrcfile}" "${binfile}" executable [list debug]] != "" } { return -1 } gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} set bp_location [gdb_get_line_number "STOP" ${csrcfile}] runto "foo.c:$bp_location" # Make sure that the language is switched to Ada for the second frame # by checking the string parameter. gdb_test "bt" \ ".*#1.*lang_switch\.ada_procedure\\s*\\(msg=$hex\\).*" \ "backtrace" --H1spWtNR+x+ondvy Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="lang_switch.adb" Content-length: 468 with System; procedure Lang_Switch is pragma Linker_Options ("foo.o"); function C_Procedure (Msg : String) return Integer; pragma Import(C, C_Procedure, "c_procedure"); procedure Ada_Procedure (Msg : String) is C_Msg : String (1 .. 1024); Tmp_Int : Integer; begin C_Msg (1 .. Msg'length + 1) := Msg & Ascii.Nul; Tmp_Int := C_Procedure (Msg => C_Msg); end Ada_Procedure; begin Ada_Procedure ("msg"); end Lang_Switch; --H1spWtNR+x+ondvy Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="foo.c" Content-length: 56 int c_procedure (char* msg) { return 0; /* STOP */ } --H1spWtNR+x+ondvy--