zoukankan      html  css  js  c++  java
  • linux程序调试常用命令

    1 调用跟踪

        跟踪系统调用 strace ls –l

        跟踪库调用  ltrace

    2 lsof(list open file)

        查看程序命令打开了哪些文件  lsof –p PID; lsof –c CMD

        查看某个用户打开的文件  lsof –u root

        查看某个文件被哪个程序访问 lsof filename

    3 proc文件系统

        虚拟文件系统,可以使用cat,more,less查看

        例如:cat /proc/cpuinfo;    cat /proc/meminfo

    4 网络调试

        ping

        tcpdump   tcpdump –i eth0 –s0 –SvX host 192.168.1.12 and port 1234 –w test.pcap

                        tcpdump -i eth0 -s0 -nn udp port 6561 #指定协议类型以及端口

                        tcpdump -i em1 -s0 -nn udp and src host 60.173.13.115 and src port 6561 #指定协议类型以及ip和端口

      lsof -i:port  #查看指定端口对应的进程

        ethtool

        traceroute

        netstat –anp | grep port

    5 二进制文件调试

        file  filename  文件类型

        ldd  显示依赖动态库,对应的库路径配置文件 /etc/ld.so.conf,重新加载命令 ldconfig

        nm  列出目标文件中符号信息

        objdump  列出目标文件信息,反汇编  objdump –d hello | more

        readelf  显示ELF文件信息,查看某个库是否定义了某个函数 readelf –s hello.so –W 60 | grep symbol_name

        addr2line  在包含调试信息下,将地址转换成源程序名字

    6 系统性能查看

        top

        vmstat

    7 .o文件查看

        find /home/libs –iname “*.*o” –exec sh –c “ ls {}; nm –A {} | grep –iH “match_conten””;

    8 特殊删除

        bash下,可以使用扩展的globbing,启动方法:shopt –s extglob,删除除fie1和file2之外的所有文件  rm !(file1|file2)

    9 保存文件中指定位置开始指定字节数

        dd if=input_file of=output_file bs=1 skip=200 count=100 #保存input_file中从200字节开始后的100字节数据到output_file文件中

    10 查看指定进程的线程数目

        pstree -p `ps -e | grep procName | awk '{print $1}'` | wc -l

    11 查看网卡流量信息

        sar -n DEV 1 100

      查看指定端口流量信息  iftop -nP

      nload

    12 valgrind

        valgrind --log-file=./valgrind_report.log --leak-check=full  --show-reachable=no --track-origins=yes  --trace-children=yes ./run_exe

    13 dmesg

        dmesg -T

    14 cat /proc/pid/smaps

    15 多线程VIRT过高

    16 添加用户

        useradd -u 33 -g root -c www-data -d /var/www -s /usr/sbin/nologin www-data

  • 相关阅读:
    [置顶] Android自定义控件大全
    与机房收费系统图的初步情结
    队列用链表实现(建立,插入新元素,删除元素,读取元素,全部删除,全部读出,判断是否为空,清空)
    数据结构 练习 16-动态规划
    windows和linux在建筑python集成开发环境IDE
    圆角盒演习(1)
    tortoise svn无法识别subversion check向下代码来解决
    CSS+DIV+JQuery实际的视频汇总
    【Android开发经验】Android举UI设计经验
    程序猿什么样的角色代表了这个号码?你想过这个问题?
  • 原文地址:https://www.cnblogs.com/zhouLee/p/4738246.html
Copyright © 2011-2022 走看看