Strace
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. Cygwin fornisce un'utility simile. UtilizzoL'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. Output di esempioSegue 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. Altri strumentiI diversi sistemi operativi offrono altri strumenti simili e talvolta più potenti, per esempio:
Note
Voci correlateCollegamenti esterni
|
Portal di Ensiklopedia Dunia