Thanks for the precise information you have put in your question,
it helps to see what is going on.

> ==6164== embedded gdbserver: reading from 
> /tmp/vgdb-pipe-from-vgdb-to-6164-by-???-on-???
> ==6164== embedded gdbserver: writing to 
> /tmp/vgdb-pipe-to-vgdb-from-6164-by-???-on-???
> ==6164== embedded gdbserver: shared mem 
> /tmp/vgdb-pipe-shared-mem-vgdb-6164-by-???-on-???
The above is the FIFOs and shared mem created by the Valgrind gdbserver.
They are created in the environment in which valgrind is launched.
>From the ls command below, we see that these files belongs to the user apache:
> prw-r--r--.  1 apache   apache        0 Apr 14 13:18 
> vgdb-pipe-from-vgdb-to-6164-by-???-on-???
> -rw-r--r--.  1 apache   apache       48 Apr 14 13:18 
> vgdb-pipe-shared-mem-vgdb-6164-by-???-on-???
> prw-r--r--.  1 apache   apache        0 Apr 14 13:18 
> vgdb-pipe-to-vgdb-from-6164-by-???-on-???

>From the below, it looks like gdb and vgdb are launched by the user plug.
> (gdb) target remote | vgdb --pid=6164
> Remote debugging using | vgdb --pid=6164
> syscall failed: No such file or directory
> error opening /tmp/vgdb-pipe-shared-mem-vgdb-6164-by-plug-on-playground.fc16
> shared memory file
> Remote communication error.  Target disconnected.: Connection reset by peer.
> (gdb)
The FIFOs and shared mem used by vgdb are based on the user name and the host 
name.
The logic to find the user name is:
  First try the env variable LOGNAME
  if not set, try the env variable USER
  if still not set, then take ???.
For the host name, the variables examined are:
   HOST
   then HOSTNAME
   then ??? 

You should start your gdb and vgdb in the same "context/environment" as the 
gdbserver
you are trying to connect to. Then both the Valgrind gdbserver and vgdb should 
agree
on user and host, and use the same vgdb-pipe files.

If you cannot do that for one reason or another, you might try the following
(without guarantee :) :
    export LOGNAME="???"
    export HOST="???"
 and then launch gdb+vgdb.
If you launch your gdb/vgdb under another account, the launched vgdb will not 
have
rw access to the vgdb-pipe* files. To change the permissions, you will have
to one way or another let the apache user either chmod a+rw these files
or else use apache user to launch gdb and vgdb
(or maybe use root ?).

Hope this helps ...

Philippe

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to