linux下开发必备的工具

   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  程序名  //把所有“程序名”的进程杀死

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值