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 程序名 //把所有“程序名”的进程杀死
上一篇:
Python 安装包管理工具 pip
下一篇:
三步搞定 vscode 代码格式化