<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <font size="+1"><font face="Times New Roman, Times, serif"><br>
      </font></font>
    Pessoal, <br>
    <br>
    Eu comentei ontem sobre o Strace aqui na lista, e recebi um email
    comentando sobre, acabei escrevendo um pouco sobre o comando Strace
    e Ltrace, decidi compartilha com o grupo, talvez ajude-os em algo!<br>
    <br>
    <br>
    <br>
    Existe dois comandos chamados trace de processos que voc&ecirc; pode
    utilizar e s&atilde;o bastante &uacute;teis, pois as mensagens geradas por um
    programa sempre s&atilde;o mensagens criadas pelo programador, mas n&atilde;o diz
    tudo o que acontece por dentro do processo.<br>
    <br>
    O Strace ele faz um trace e mostra todas as chamadas de sistema,
    tudo que &eacute; chamada para o Kernel, para explicar isso fica mais
    complicado, mas normalmente o programa chama uma fun&ccedil;&atilde;o e ela &eacute;
    convertida para um fun&ccedil;&atilde;o da API do Kernel.<br>
    <br>
    Aqui t&aacute; um exemplo que pode te ajudar.<br>
    <br>
    Esse &eacute; o comando 'strace ls' no meu home.<br>
    <br>
    /* 61 entries */, 32768)&nbsp;&nbsp;&nbsp; = 1984<br>
    getdents(3, /* 0 entries */, 32768)&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>
    close(3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 0<br>
    fstat(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0<br>
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
    -1, 0) = 0x7fcdbddcf000<br>
    write(1, "Desktop\nDocuments\nDownloads\nISOS"..., 79) = 79<br>
    <br>
    Todas as palavras no come&ccedil;o, como por exemplo mmap, voc&ecirc; pode no seu
    terminal e rodar man mmap, e voc&ecirc; ver&aacute; o que essa fun&ccedil;&atilde;o faz e quais
    s&atilde;o os argumentos que ela recebe, isso &eacute; legal para conhece passo a
    passo que o processo pode estar fazendo e o programador n&atilde;o te
    disse.<br>
    <br>
    Explore bem o man do strace que ele pode te ajudar em alguns
    momentos durante sua vida com Linux.<br>
    <br>
    <br>
    Outro tamb&eacute;m bem parecido n&atilde;o sei se voc&ecirc; conhece &eacute; o Ltrace, ele
    faz a mesma fun&ccedil;&atilde;o que o Strace, por&eacute;m o S do Strace, &eacute; System, e o
    L do Ltrace &eacute; LIbrary. Concluimos ent&atilde;o que o Ltrace ele faz a mesma
    coisa s&oacute; que para as fun&ccedil;&otilde;es das bibliotecas! <br>
    <br>
    <br>
    teste depois com alguns comandos colocar o strace -c comando , ou ,
    ltrace -c comando.<br>
    <br>
    Voc&ecirc; ver&aacute; quantas vezes uma chamada de sistema ou de biblioteca foi
    realizada e quantos erros podem ter retornados quando essa fun&ccedil;&atilde;o
    foi chamada. N&atilde;o &eacute; para se preocupar se o programa esta rodando
    normal, exemplo, v&aacute;rios programas realizam tentativas de abrir
    aquivos em caminhos especificos, quando n&atilde;o existem eles procuram em
    outros lugares, mas a fun&ccedil;&atilde;o que tentou abrir o arquivo que n&atilde;o
    existe gerou um erro, mas n&atilde;o se preocupe com o tempo voc&ecirc; pegar&aacute; o
    jeito dele.<br>
    <br>
    Outra dica boa, &eacute; as op&ccedil;&otilde;es -f -F , s&atilde;o para os Forks gerados pelo
    processo que vc est&aacute; monitorando, colocando essas op&ccedil;&otilde;es voc&ecirc;s v&atilde;o
    ver tudo do processo principal e incluindo tudo dos processos que
    foram fork desse principal! <br>
    <br>
    Espero te ajudado! <br>
    Abs! <br>
    <br>
    -Aslan <br>
    <br>
    <br>
    <br>
  </body>
</html>