• Linux Debug tools(转贴)


    2010-10-27 11:47 by zhenjing, 1400 阅读, 0 评论, 收藏, 编辑

    1. gdb attach [pid] -- debug a running process

    2. valgrind-- a suite of tools for debugging and profiling programs

    Very powerful tool to debug linux program,just for x86 platform

    3. strace -trace system calls and signals

    In the simplest case strace runs thespecified command until it exits.  It intercepts  and records  the system calls which are called by a process and the signalswhich are received by a process.  The name of each system call, itsarguments and its return value are printed on standard error or to the file specifiedwith the -o option.

    4. pstack -print a stack trace of a running process

    It's often used to check the stack of hungprocess.

    5. mtrace, muntrace - malloc debugging

    The  function  mtrace() installs  handlers for malloc(), realloc() and free().  The functionmuntrace() disables these handlers.
    The environment variable MALLOC_TRACE defines a file where mtrace() writes itsoutput.  This  file  must be writable to the user or mtrace()will do nothing.  If the file is not empty it will be truncated.

    Usage: call the two function before andafter the code you want to pay attention on.

    6. dmesg -print or control the kernel ring buffer

    Check the error message of all kind ofprogram, especail for third-party program.

    7. binutils-- a tools set

    * ld - the GNU linker.

    * as - the GNU assembler.

    * addr2line - Converts addresses intofilenames and line numbers.

    * ar - A utility for creating, modifyingand extracting from archives.

    * c+filt - Filter to demangle encoded C+symbols.

    * gprof - Displays profiling information.

    * nlmconv - Converts object code into anNLM.

    * nm - Lists symbols from object files.

    * objcopy - Copys and translates objectfiles.

    * objdump - Displays information fromobject files.

    * ranlib - Generates an index to thecontents of an archive.

    * readelf - Displays information from anyELF format object file.

    * size - Lists the section sizes of anobject or archive file.

    * strings - Lists printable strings fromfiles.

    * strip - Discards symbols.

    * windres - A compiler for Windows resourcefiles.

    8. ldd -print shared library dependencies

    9. ld.so, ld-linux.so* - dynamic linker/loader

    ---------------------------------------------------

    10.lsof -list open files

    Very useful to check if fd leak.

    11. netstat  -  Print network connections, routing tables, interfacestatistics, masquerade connections, and multicast memberships

    12. iostat  -  Report  Central  Processing Unit (CPU) statisticsand input/output statistics for devices and partitions.

    13. vmstat -Report virtual memory statistics

    14. time - time a simple command or give resource usage. System time depend on system status, User time is the real time of your program used.

    注:因经验有限,大体就知道这些。欢迎各位补充。

  • 相关阅读:
    Spring Boot & ES 实战,值得参考!
    什么是 Java 对象深拷贝?面试必问!
    一份完整的 MySQL 开发规范,进大厂必看!
    ASP.NET + MVC5 入门完整教程五 --- Razor (模型与布局)
    C# MVC扩展方法
    C#泛型应用及原理
    部分类及部分方法
    程序集
    类的可访问属性
    ASP.NET + MVC5 入门完整教程四---MVC 中使用扩展方法
  • 原文地址:https://www.cnblogs.com/spinsoft/p/3127951.html
Copyright © 2020-2023  润新知