linux下开发必备的工具

来源:互联网 发布:python count 编辑:程序博客网 时间:2024/06/04 19:08
   strace  可用于跟踪一个程序里使用了哪些系统编程函数   用法:  strace  程序名   程序执行时的参数   ltrace  可跟踪程序里调用的库函数   用法:  ltrace 程序名   file  可查看一个文件的类型   用法:  file  文件名      如果file查看的是一个程序,可以查看到程序的位数, 大小端, 是否依赖动态库   如:    file a.out a.out: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped   ldd   可查看一个程序所有依赖的动态库及所缺的动态库   如:  ldd a.out     linux-vdso.so.1 =>  (0x00007fff225ff000)    libc.so.6 => /lib64/libc.so.6 (0x0000003b91600000)    /lib64/ld-linux-x86-64.so.2 (0x0000003b90e00000)/////////      valgrind 可用于查看程序是否有内存泄漏与访问越界   用法:  valgrind  程序名   如果出现的信息有: Invalid read/write of size ...                  表示有可能是访问越界了   如果出现的堆信息有: HEAP SUMMARY:==4224==     in use at exit: 2 bytes in 1 blocks==4224==   total heap usage: 1 allocs, 0 frees, 2 bytes allocated    "frees"的次数与"allocs"的次数不匹配,则有可能是内存泄漏    LEAK SUMMARY:==4224==    definitely lost: 2 bytes in 1 blocks==4224==    indirectly lost: 0 bytes in 0 blocks==4224==      possibly lost: 0 bytes in 0 blocks==4224==    still reachable: 0 bytes in 0 blocks==4224==         suppressed: 0 bytes in 0 blocks//////////   nm a.out  //可查看a.out程序里使用的函数名及函数地址,全局变量等信息   readelf -h a.out //可查看elf可执行文件的文件头   readelf -a a.out //查看elf文件的格式信息   objdump -D a.out //反汇编   strip : 可把程序里的符号标志去掉, 程序功能不变   用法:  strip  a.out  -o  b.out  //把a.out里的符号标志全部去除掉,生成b.out.   killall  程序名  //把所有“程序名”的进程杀死