Timeline
Chat
Prospettiva

Strace

utility di debugging per Linux e sistemi Unix-like Da Wikipedia, l'enciclopedia libera

Remove ads

strace è un'utility di debugging per Linux e altri sistemi Unix-like che esamina le chiamate di sistema usate da un programma e tutti i segnali che esso riceve, analogamente all'utility truss presente in altri sistemi Unix. Ciò è reso possibile da una funzionalità chiamata ptrace.

Dati rapidi strace software, Genere ...

Cygwin fornisce un'utility simile.

Remove ads

Utilizzo

L'uso più comune è quello di far partire un programma usando strace, che stampa a video la lista delle chiamate di sistema fatte dal programma. Ciò è utile se il programma va frequentemente in crash, o non tiene il comportamento atteso; per esempio l'uso di strace può rivelare che il programma tenti di accedere ad un file che non esiste o è illeggibile.

In alternativa, si usa il flag -p per associare strace ad un processo già in esecuzione. Ciò è utile se un processo ha smesso di rispondere, e può rivelare, ad esempio, che il processo è bloccato in attesa di una connessione alla rete.

Siccome strace mostra soltanto i dettagli delle chiamate di sistema, non può essere utilizzato per individuare tutti i problemi che può rivelare un debugger come GNU Debugger (gdb). Però, esso è più facile da usare di un debugger, ed è uno strumento estremamente utile per gli amministratori di sistema.

Remove ads

Output di esempio

Segue un tipico esempio di output del comando strace:

open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
getdents64(3, /* 18 entries */, 4096)   = 496
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2c000
write(1, "autofs\nbackups\ncache\nflexlm\ngames"..., 86autofsA

Il frammento sopra è solo una piccola parte dell'output di strace quando viene eseguito sul comando ls. Mostra che la directory di lavoro viene aperta e ne viene letto il contenuto. La lista di file risultante è scritta sullo standard output.

Remove ads

Altri strumenti

I diversi sistemi operativi offrono altri strumenti simili e talvolta più potenti, per esempio:

Note

Voci correlate

Collegamenti esterni

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads