This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA/testsuite] Fix linux-dp failure for multiple targets
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Wed, 30 Jan 2002 00:57:33 -0500
- Subject: Re: [RFA/testsuite] Fix linux-dp failure for multiple targets
- References: <20020109183926.A17757@nevyn.them.org>
On Wed, Jan 09, 2002 at 06:39:26PM -0500, Daniel Jacobowitz wrote:
> Two things I noticed in my testsuite runs. We were never finding the
> manager thread, and in gcc3 (which apparently unlike GCC2 produces reliable
> and stable addresses for the data pointers; I don't know why...) the second
> target board to run would find the old value of the seen array. 'array set'
> doesn't do what the author of the testcase expected.
>
> Is this OK?
I'd appreciate it if someone would review this.
> 2002-01-09 Daniel Jacobowitz <drow@mvista.com>
>
> * gdb.threads/linux-dp.exp: Use 'array unset', not 'array set'.
> (check_philosopher_stack): Check for manager thread before checking
> for a just-starting thread.
>
> Index: linux-dp.exp
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.threads/linux-dp.exp,v
> retrieving revision 1.4
> diff -u -p -r1.4 linux-dp.exp
> --- linux-dp.exp 2001/05/25 01:29:01 1.4
> +++ linux-dp.exp 2002/01/09 23:35:01
> @@ -172,6 +172,15 @@ proc check_philosopher_stack {thread see
> }
> set interesting 1
> }
> + -re ".* in __pthread_manager \\(.*$gdb_prompt $" {
> + if {$manager_seen == 1} {
> + fail "manager thread is distinct: $thread"
> + } else {
> + set manager_seen 1
> + pass "manager thread is distinct: $thread"
> + }
> + set interesting 1
> + }
> -re "pthread_start_thread.*\r\n$gdb_prompt $" {
> ## Maybe the thread hasn't started yet.
> pass $name
> @@ -185,15 +194,6 @@ proc check_philosopher_stack {thread see
> }
> set interesting 1
> }
> - -re ".* in __pthread_manager \\(.*$gdb_prompt $" {
> - if {$manager_seen == 1} {
> - fail "manager thread is distinct: $thread"
> - } else {
> - set manager_seen 1
> - pass "manager thread is distinct: $thread"
> - }
> - set interesting 1
> - }
> -re " in \\?\\?.*\r\n$gdb_prompt $" {
> ## Sometimes we can't get a backtrace. I'm going to call
> ## this a pass, since we do verify that at least one
> @@ -214,7 +214,7 @@ proc check_philosopher_stack {thread see
> }
>
> set any_interesting 0
> -array set seen {}
> +array unset seen
> for {set i 1} {$i <= 7} {incr i} {
> if [check_philosopher_stack $i seen] {
> set any_interesting 1
>
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer