This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 4/4] gdb: kfail for PR14161


On 06/14/2012 04:01 PM, Yao Qi wrote:

> On Wednesday 13 June 2012 00:20:30 Pedro Alves wrote:
>>> > > +    # Due to PR gdb/14161, sockets files are not removed when agent
>>> > > exists.
>>> > > 
>>> > > +    # However this problem only affects native gdb, so we don't have to
>>> > > bother
>>> > > 
>>> > > +    # 'remote_file target delete'.  Simple tcl command 'file delete'
>>> > > should +    # be OK.
>>> > > +    eval file delete [glob "/tmp/gdb_ust*"]
>>> > > +
>> > 
>> > "bother with".  But note this doesn't work with remote host testing.
> I use "remote_file target delete" in the new patch when "is_remote target" is
>  true, otherwise use tcl builtin command to remove files.
> 
> gdb/testsuite:
> 
> 2012-06-14  Yao Qi  <yao@codesourcery.com>
> 
> 	KFAIL for PR14161.
> 	* gdb.trace/strace.exp (strace_remove_socket): kfail for native.
> 	Cleanup socket files.
> ---
>  gdb/testsuite/gdb.trace/strace.exp |   14 +++++++++++++-
>  1 files changed, 13 insertions(+), 1 deletions(-)
> 
> diff --git a/gdb/testsuite/gdb.trace/strace.exp b/gdb/testsuite/gdb.trace/strace.exp
> index b96ab41..1520055 100644
> --- a/gdb/testsuite/gdb.trace/strace.exp
> +++ b/gdb/testsuite/gdb.trace/strace.exp
> @@ -100,6 +100,10 @@ proc strace_remove_socket { action } {
>  
>      sleep 5
>  
> +    if { ![is_remote target] && ! [string equal $action "detach"] } {
> +	setup_kfail gdb/14161 *-*-*
> +    }
> +
>      set test "socket file removed"
>      if [is_remote target] {
>  	set status [remote_exec target "sh -c \"exit `\\\[ -S $socket_file ]`\""]
> @@ -332,7 +336,15 @@ if { ![is_remote target]
>      strace_remove_socket "quit"
>      strace_remove_socket "detach"
>      strace_remove_socket "continue"
> +
> +    # Due to PR gdb/14161, sockets files are not removed when agent exists.
> +    if [is_remote target] {
> +	foreach match [glob -nocomplain "/tmp/gdb_ust*"] {
> +	    remote_file target delete $match


That's unfortunately not good, because while the "delete" runs on
the "target", the "glob" is running on the "build" machine (which is usually
the "host", unless you're doing remote-host testing).

> +	}
> +    } else {
> +	eval file delete [glob "/tmp/gdb_ust*"]

> +    }

This else doesn't work for remote-host testing either.  With remote-
-host testing, you have expect running on machine A (build), GDB
running on machine B (host), and that GDB connecting to machine
C (target).  Usually, either A and B are the same, or B and C are
the same, though A != B != C is possible.

Maybe we can avoid the need for globing in the first place, by making
strace_remove_socket (and whatever other function in the file, if
necessary), remove the socket file before returning, while they
still know the inferior's PID?

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]