`
ayufox
  • 浏览: 276178 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Linux C/C++常用工具汇总

阅读更多

1.ltrace/strace:ltrace用于跟踪库调用的情况,strace用于系统调用的情况,strace是ltrace的一个功能子集,
使用方式:
    strace/ltrace [options] -p {PID}   //attach到某个进程上
    strace/ltrace [options] {command}  //运行某个程序并用ltrace跟踪
常用的选项[options]有
   -c            调用函数汇总统计
   -r            打印出与上一次系统调用的时间间隔
   -T            打印出每次系统调用
   --l={library} 仅跟踪指定的库(ltrace专用)
   -S            strace模式(ltrace专用)
关于ltrace/strace/gdb的工作原理,可以参见:http://javadino.blog.sohu.com/101228695.html
2.gdb:C 和C++ 程序的强力调试器,非常强大
使用方式:
   gdb {program} 调试program
   gdb {program} -c {coredumpfile} 调试program,coredumpfile是coredump文件
   gdb -p {pid}  调试进程pid
对于查找问题而言(后两种),进入后输入where可以查看当前程序运行到哪里(最常用的选项)
gdb的具体使用可以参见:http://www.linuxeden.com/html/develop/20070514/26819.html
3.lsof:lsof=list opened files,用于列出被打开的文件,需要注意的是,linux中基本上很多都是文件,如socket、IO设备等
使用方式:
   lsof {filename} 显示开启文件filename的进程
   lsof -p {pid} 显示进程打开了哪些文件
   lsof -c {program} 显示program当前打开了哪些文件
   lsof +d {dir} 显示dir目录下被进程开启的文件
   lsof +D {dir} 与+d相同,但会搜索子目录
   lsof -U 显示Unix Socket
   lsof -i [4/6] [protocol][@hostname|hostaddr][:service|port] 显示符合条件的进程
     [4/6] 是IPv4还是IPv6
     [protocol] tcp或udp
     [@hostname|hostaddr] 主机名或IP地址
     [:service|port] 服务(/etc/service中定义)或端口
     譬如 lsof -i :22 显示当前使用22端口的进程
4.objdump:用来查看elf(execute and linking format)格式文件中的内容
使用方式:
   objdump [options] {filename}
选项:
   -f 显示elf各section(段)的描述信息
   -d 反汇编可执行section(譬如text正文段信息)
   -D 反汇编所有的段(信息太多,不如-d有用)
   -r 显示需要重定位的符号(一般对.o文件有效)
   -R 显示需要重定位动态库符号(一般对加了动态连接库连接的可执行程序有效)
   -t 显示符号表
   -T 显示所有动态库的符号表(.so动态库)
5.tcpdump:跟踪网络中传输的包,需要注意的是,tcpdump工作在网络混编模式下,即其不仅能跟踪目的地址为本机IP或广播/组薄地址的数据包(网卡默认工作模式),而且可以跟踪发送给其他主机的数据包(混编模式,不过滤本机不能处理的包)(与以太网的总线结有关,局域网内的数据包会发送给所有的主机,以太网卡默认会过滤掉所有本机无法处理的包)。
使用:参见http://www.linux521.com/2009/newbie/200907/7196.html
6.netstat:netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据
使用方式:
   tcpdump [options]
选项:
   -r 显示关于路由表的信息
   -a 显示所有的链接信息
7.top/vmstat/iostat:用于显示系统资源的占用情况
iostat:报告中央处理器(CPU)统计信息和整个系统、适配器、tty 设备、磁盘和 CD-ROM 的输入/输出统计信息。
参考:http://www.cublog.cn/u/27493/showart_498055.htm、http://study.chyangwa.com/IT/AIX/aixcmds3/iostat.htm
vmstat:报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。
参考:http://www.eygle.com/digest/2007/07/vmstat_man_page.html

分享到:
评论

相关推荐

    ubuntu下C++开发环境汇总

    以下是 Ubuntu 环境下常用的 C++ 开发工具: 1. Eclipse Eclipse 是一款跨平台的集成开发环境(IDE),支持 Linux、Windows 和 OS X 三大操作系统,由 IBM 加拿大项目在 2001 年制作。Eclipse 是一个功能强大且...

    常用的C语言编程工具汇总

    C语言编程工具汇总 C语言是一种强大的计算机语言,应用非常广泛,不仅仅是在软件开发上,而且各类科研都会用到C语言。今天,我们汇总了常用的C语言编程工具,包括VC++ 6.0、Code::Blocks、Dev-C++、Visual Studio和...

    C,C++,linux经典题目.rar

    《C,C++,Linux经典题目》集合是一个珍贵的学习资源,涵盖了C语言、C++以及Linux操作系统的重点知识。这个压缩包中包含了多个文件,旨在帮助学习者深入理解和掌握这三个领域的核心概念,同时也能作为面试和笔试的...

    【精品珍藏】C、C++热门精品资料集(共110个)

    ### C/C++精品资源知识点概览 #### 一、C/C++编程语言的重要性与学习资源现状 C 和 C++ 作为计算机科学领域的基石性编程语言,一直以来都是开发人员的必修课程之一。这两种语言因其高效性和灵活性而在系统编程、...

    Linux 操作系统 汇总

    - **软件开发**:Linux下的编程环境,包括C/C++、Python、Java等语言的开发工具和调试技巧。 - **自动化工具**:Ansible、Chef、Puppet等用于自动化运维的工具介绍。 - **性能调优**:CPU、内存、磁盘I/O等方面的...

    猪哥的嵌入式linux公房菜

    - **工具使用**:熟悉常用的开发工具如GCC、GDB等。 **5. O'Reilly原版Linux图书学习线路图** - **选择书籍**:根据个人水平挑选合适的教材。 - **阅读顺序**:从基础到高级,逐步深化。 - **实践操作**:结合书中...

    Linux应用和gdb一些使用汇总。

    gdb是GNU项目下的一个源代码级调试器,适用于C、C++等语言。它可以帮助开发者追踪程序运行过程,设置断点,查看变量值,分析内存泄漏等问题。使用gdb,可以使用`gdb <program>`启动调试,`break`命令设置断点,`run...

    linux新手管理员指南 txt

    - **Linux下的编程环境搭建**:介绍了如何在Linux环境下搭建C/C++、Python等编程语言的开发环境。 - **常见开发工具使用**:列举了一些常用的开发工具(如GCC、Git等),并给出了使用示例。 - **软件包管理**:介绍...

    从Windows转向Linux教程E3000基础学习

    - **C/C++编程**:涵盖了编译运行C/C++程序、使用gdb调试等环节。 - **Kdevelop IDE**:提供了Kdevelop集成开发环境的安装与使用指南。 #### 搭建个人网站 - **Web服务搭建**:介绍了如何使用Apache搭建简单的Web...

    LinuxOS课程练习代码(第一周汇总)

    5. **编程语言接口**:在Linux环境下,C和C++是最常用的编程语言,它们可以通过系统调用接口与内核交互。学习编写Linux程序,理解标准I/O库、内存管理、文件操作等至关重要。 6. **脚本编程**:`introduction`可能...

    各类编程语言汇总.pdf

    1. C/C++:作为编程语言的基石,C/C++在多种操作系统和平台(如KDE、Gnome、Linux、Unix-like、Windows等)上提供API,并广泛应用于系统编程、游戏开发、嵌入式开发等领域。C++支持面向对象编程,是许多其他语言的...

    MySQL for Linux 必备手册

    - **常用工具**: - **mysql**: 客户端连接工具,用于连接MySQL服务器并执行SQL命令。 - **myisampack**: MyISAM表压缩工具,用于压缩MyISAM格式的表以节省空间。 - **mysqladmin**: MySQL管理工具,用于执行管理...

    2024嵌入式大厂面经海康笔试题汇总

    1. **编程语言**:C/C++是最常用的编程语言之一,因其高效且能够直接访问硬件资源。 2. **操作系统**: - **实时操作系统(RTOS)**:如FreeRTOS、μC/OS-II,适用于需要精确控制时间的应用场景。 - **嵌入式Linux...

    Linux培训笔记-初学

    1. **BusyBox在小型系统中的应用**:BusyBox是一个集成了上百个最常用Linux命令和工具的软件,它体积小巧,功能强大,特别适合嵌入式设备或资源受限的环境。通过BusyBox,可以在非常小的内存空间内运行一个功能完整...

Global site tag (gtag.js) - Google Analytics