Uživatelské nástroje

Nástroje pro tento web


debuging_c

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
debuging_c [2015/11/04 13:36] – [Google's tcmalloc heapprofiler] djbuldogdebuging_c [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 104: Řádek 104:
 ==== lsof ==== ==== lsof ====
   * zobrazí file deskriptory (soubory, sockety, pipe), které má proces aktuálně otevřené   * zobrazí file deskriptory (soubory, sockety, pipe), které má proces aktuálně otevřené
 +  * seznam obsahuje rovněž spuštěnou binárku a všechny knihovny
 +  * dále zde lze zjistit pracovní adresář
 +  * u souborů lze zjistit, jaký je aktuální seek
 +  * příklad:
 +    * pracovní adresář je /home/flowmon/commleak
 +    * předchozí adresář je /
 +    * binárka je /bin/bash
 +    * stdin (0), stdout (1) i stderr (2) je navěšen na terminál /dev/pts0
  
 +<code>
 +lsof -p 16901
 +COMMAND   PID USER   FD   TYPE DEVICE     SIZE   NODE NAME
 +bash    16901 root  cwd    DIR    8,3     4096 464983 /home/flowmon/commleak
 +bash    16901 root  rtd    DIR    8,3     4096      2 /
 +bash    16901 root  txt    REG    8,3   801816  48121 /bin/bash
 +bash    16901 root  mem    REG    8,3   144776 547197 /lib64/ld-2.5.so
 +..
 +bash    16901 root    0u   CHR  136,0               3 /dev/pts/0
 +bash    16901 root    1u   CHR  136,0               3 /dev/pts/0
 +bash    16901 root    2u   CHR  136,0               3 /dev/pts/0
 +</code>
 ==== strace ==== ==== strace ====
  
Řádek 111: Řádek 131:
   * Vypisuje vždy systémové volání s argumenty a návratovou hodnotou. Například u operace write je prvním argumentem file deskriptor. File deskriptory je pak možné dohledat přes lsof -p <pid> (fd 1 je typicky stdinout, fd2 je typicky stderr)   * Vypisuje vždy systémové volání s argumenty a návratovou hodnotou. Například u operace write je prvním argumentem file deskriptor. File deskriptory je pak možné dohledat přes lsof -p <pid> (fd 1 je typicky stdinout, fd2 je typicky stderr)
   * výpis strace je zkrácený na 32 znaků, pokud je potřeba vidět víc, je třeba nastavit větší délku přes strace -s <newlength>   * výpis strace je zkrácený na 32 znaků, pokud je potřeba vidět víc, je třeba nastavit větší délku přes strace -s <newlength>
 +  * užitečné volby
 +    * -tt detailed timestamps
 +    * -f also strace any child processes
 +    * -v be very verbose, even with common structures
 +    * -o write output to file
 +    * -s N capture up to N characters of strings, rather than abbreviating with ...
  
 ==== gdb ==== ==== gdb ====
Řádek 120: Řádek 146:
 ==== gcore ==== ==== gcore ====
   * kompletní dump procesu včetně celé paměti, k pozdější analýze   * kompletní dump procesu včetně celé paměti, k pozdější analýze
 +  * alternativně lze nastavit 
 +    * v environment přes ''ulimit -c unlimited'' 
 +    * globálně, pro uživatele, přes ''/etc/security/limits.conf''
 ==== pmap ==== ==== pmap ====
    * výpis alokované paměti    * výpis alokované paměti
debuging_c.1446640578.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki