From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7051 invoked by alias); 30 Sep 2003 19:22:01 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 7041 invoked from network); 30 Sep 2003 19:22:00 -0000 Received: from unknown (HELO nevyn.them.org) (66.93.172.17) by sources.redhat.com with SMTP; 30 Sep 2003 19:22:00 -0000 Received: from drow by nevyn.them.org with local (Exim 4.22 #1 (Debian)) id 1A4Q4M-0001T0-PA for ; Tue, 30 Sep 2003 15:21:58 -0400 Date: Tue, 30 Sep 2003 19:22:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: [RFA] New threads test Message-ID: <20030930192158.GA5615@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.1i X-SW-Source: 2003-09/txt/msg00662.txt.bz2 This is a test for the remote protocol issue I'm solving with vCont. It also shows up in schedlock, but the simpler test makes it much clearer what's going wrong. OK? -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer 2003-09-30 Daniel Jacobowitz * gdb.threads/switch-threads.exp: New test. * gdb.threads/switch-threads.c: New source file. --- /dev/null 1969-12-31 19:00:00.000000000 -0500 +++ testsuite/gdb.threads/switch-threads.c 2003-09-27 16:49:09.000000000 -0400 @@ -0,0 +1,25 @@ +#include + +void foo (void) +{ +} + +void *thread_func (void *arg) +{ + int x; + for (x = 0; x < 10; x++) + foo (); + return 0; +} + +int main() +{ + pthread_t thr; + void *ret; + int x; + + pthread_create (&thr, NULL, thread_func, NULL); + pthread_join (thr, &ret); + for (x = 0; x < 10; x++) + foo (); +} --- /dev/null 1969-12-31 19:00:00.000000000 -0500 +++ testsuite/gdb.threads/switch-threads.exp 2003-09-28 13:04:48.000000000 -0400 @@ -0,0 +1,46 @@ +# Copyright (C) 2003 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +# This file was written by Daniel Jacobowitz . +# +# It tests that the correct thread is single-stepped. + +if $tracelevel then { + strace $tracelevel +} + +set testfile "switch-threads" +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable [list debug "incdir=${objdir}"]] != "" } { + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +runto_main + +gdb_breakpoint thread_func +gdb_continue_to_breakpoint "continue to thread_func" +gdb_test "next" ".*foo \\(\\);" +