基于Linux调试工具strace与gdb的常用命令总结
Linux环境下的两个强大调试工具:strace与gdb的深入与使用指南
在Linux环境下,对于开发者而言,掌握调试工具是提升开发效率的关键。其中,strace和gdb是两个非常常用的工具。以下是对这两个工具常用参数的和使用指南,以供大家参考。
一、strace调试工具
strace是一个用于跟踪系统调用和信号的实用工具。当用户在Linux环境下运行用户程序时,该程序需要访问系统设备,这个过程需要通过系统调用完成。
常用参数:
`-c`:统计每种系统调用的执行时间、调用次数和出错次数。
`-p pid`:跟踪指定的进程ID。
`-o filename`:将strace的输出写入到指定的文件。
`-f`:跟踪由fork产生的子进程的系统调用。
`-e expr`:输出过滤表达式,可以过滤掉不需要的输出结果。
`-e trace=set`:指定跟踪特定的系统调用集合。
`-e read=set`、`-e write=set`:分别跟踪读和写的系统调用,并可以指定文件。
`-r`、`-t`、`-tt`、`-ttt`:打印或显示时间信息。
`-s`:指定每一行输出字符串的长度。
使用举例:
`strace -t whoami`:跟踪whoami可执行程序的执行过程,并在每行输出结果前打印执行的时间。
`strace -p 17151 -p 17152 -p 17153`:同时跟踪多个进程。
`strace -f -e trace=read,write -p 17151 -o log`:跟踪进程及子进程中read和write系统调用,并将输出保存到log文件。
二、gdb调试工具
GDB是GNU开源组织发布的一个强大的程序调试工具。在编译程序时,可以通过添加-g参数来使可执行程序包含gdb调试信息。
常用命令:
`info`:列出gdb子命令的信息,如info break、info variables等。
`list [file:]function`:查看当前行的上下文或某个函数的源码。
`edit [file:]function`:编辑当前行或某个函数的源码。
`break [file:]function`:在某行或某个函数处设置断点。
`run [arglist]`:运行程序至断点处停住,可以加上调试程序所需的参数。
`next`:单条语句执行。
`continue`:继续运行程序至下一个断点。
`print`:打印变量的值。
`bt`:查看函数堆栈信息。
`enter`:重复上一次调试命令。
`help [name]`:显示指定的gdb命令的帮助信息。
`quit`或`q`:退出gdb。
使用gdb进行调试时,可以结合这些命令和子命令,通过交互式的方式对程序进行调试,找出并修复问题。
strace和gdb是Linux环境下开发者必备的两个工具,熟练掌握它们的常用参数和命令,对于提升开发效率和问题解决能力非常有帮助。希望以上内容能为大家在使用这两个工具时提供有益的参考和指导。
编程语言
- 基于Linux调试工具strace与gdb的常用命令总结
- vue.js默认路由不加载linkActiveClass问题的解决方法
- JavaScript中的连续赋值问题实例分析
- javascript中apply、call和bind的使用区别
- vue-resouce设置请求头的三种方法
- 页面点击小红心js实现代码
- jQuery输入框密码的显示隐藏【代码分享】
- JS 判断某变量是否为某数组中的一个值的3种方法
- IntelliJ IDEA 2020最新注册码(亲测有效,可激活至 2
- ASP.net的验证控件浅析
- CSS javascript 结合实现悬浮固定菜单效果
- 使用Yii整合的pjax(pushstate+ajax)实现无刷新加载
- php搜索文件程序分享
- php在数据库抽象层简单使用PDO的方法
- jquery实现仿新浪微博带动画效果弹出层代码(可关
- PHP实现正则表达式分组捕获操作示例