Perché non è possibile gdb allegare alla applicazione server convocato con inetd?

StackOverflow https://stackoverflow.com/questions/1586812

  •  22-09-2019
  •  | 
  •  

Domanda

Ho un'applicazione server che può essere convocato per il client utilizzando inetd. Tuttavia, se provo a connettersi al processo del server che è stato lanciato con inetd, ottengo la seguente risposta: ptrace:. Operazione non permessa

gdb --annotate=3 /my/app/here <processId>

Current directory is /usr/local/bin/
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Reading symbols from /usr/local/bin/flumed...done.
Using host libthread_db library "/lib/tls/libthread_db.so.1".
Attaching to program: /my/app/here, process <processId>
ptrace: Operation not permitted.
/usr/local/bin/<processId>: No such file or directory.
(gdb) 
È stato utile?

Soluzione 2

A quanto pare, le cose si fanno funky con inetd in cui l'ID utente non è root. Si finisce con un processo con le autorizzazioni strani. Ad esempio, si è in grado di leggere / proc / self / exe anche se le autorizzazioni sono 777. Ho il sospetto che la questione è più la stessa. Anche se sono l'ID utente del processo, non ho i permessi. Utilizzando il tifo per GDB è un lavoro in giro.

Altri suggerimenti

soluzione per me è stato questo:

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

A seguito di ciò tgoodhart detto, altri utenti ptrace come /usr/bin/strace anche bloccare gdb.

Ho visto anche questo problema si verifica quando più istanze di gdb sono in esecuzione allo stesso tempo, di solito perché non sono riuscito a chiudere correttamente gdb. Chiusura questi casi trapelati risolto il problema.

Pls eseguire il seguente comando per risolvere ur problema:

sudo chmod + s / usr / bin / gdb

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top