linux之strace命令跟踪进程的系统调用

1 系统调用

操作系统的进程空间分为用户空间和内核空间,操作系统内核直接运行在硬件上,提供设备管理、内存管理、任务调度等功能,我们用户空间不能直接调用,所以就有了系统调用(运行在用户空间的程序向操作系统内核请求需要更高权限运行的服务),系统调用提供用户程序与操作系统之间的接口。用户空间通过API请求内核空间的服务来完成其功能——内核提供给用户空间的这些API, 就是系统调用。Linux内核目前有300多个系统调用,详细的列表可以通过syscalls手册页查看。这些系统调用主要分为几类:

文件和设备访问类 比如open/close/read/write/chmod等
进程管理类 fork/clone/execve/exit/getpid等
信号类 signal/sigaction/kill 等
内存管理 brk/mmap/mlock等
进程间通信IPC shmget/semget * 信号量,共享内存,消息队列等
网络通信 socket/connect/sendto/sendmsg 等
其他

 

 

2 strace命令

strace:这个命令我们可以用来跟踪用户空间的系统调用,比如我们执行了一个可执行文件或者命令,我们只能看到结果,如果我们要知道这个进程系统调用,
我们可以使用这个命令,但是这个命令参数很多,我们一般只要记住下面几个参数就行
参数意义如下

-c

统计和报告每个系统调用所执行的时间、调用次数和出错次数等

-f

跟踪当前进程及其通过fork系统调用所创建的子进程

-tt</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288348.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

solidity bytes 智能合约开发知识浅学(五点一)bytes基本概念

环境说明&#xff1a; Ide&#xff1a;在线remix Solidity IDE 语言&#xff1a;solidity solidity 版本号&#xff1a;0.4.20 Tip&#xff1a;如果一点都不懂的建议从头开始看 运行结果截图我不赘述&#xff0c;所有合约代码均通过个人检测。请按照标准进行操作&#xff0c;如…

C#连接Excel和Access(包括2003和2007版)方法总结

一、说明: C#采用OLEDBConnection连接Excel、Access。要连接的数据源版本不同,连接字符串也不同。 97-2003版本 EXCEL Provider=Microsoft.Jet.OLEDB.4.0;Data Source=文件位置;Extended Properties=Excel 8.0;HDR=Yes;IMEX=1

Android启动过程五个步骤,Android启动流程、app启动原理

从头分析整理学习底层知识。Android 众多基于Linux内核的系统类似, 启动系统时, bootloader启动内核和init进程. init进程分裂出更多名为"daemons(守护进程)"的底层的Linux进程, 诸如android debug deamon, USB deamon等. 这些守护进程处理底层硬件相关的接口.随后, …

【Spring-AOP-学习笔记-3】@Before前向增强处理简单示例

项目结构程序代码HelloImpl.javaWorldImpl.java定义切面类package org.crazyit.app.aspect;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;// 定义一个切面Aspectpublic class AuthAspect{ // 匹配org.crazyit.app.service.impl包下所…

排序算法分析

我们都知道&#xff0c;在应届面试的时候&#xff0c;问到最多的就是快速排序&#xff0c;快速排序是最经典、最常用的排序算法&#xff0c;因为它的平均效率最优&#xff0c;也最稳定。 快速排序使用了分治的算法思想&#xff0c;分治算法本身理解起来很符合人类的思路&#x…

sklearn 线性回归_使用sklearn库做线性回归拟合

背景资料随着海拔高度的上升&#xff0c;温度越来越低&#xff0c;经过气象专家的研究&#xff0c;在一定的海拔高度范围内&#xff0c;高度和温度呈线性关系。现有一组实测资料&#xff0c;我们需要对这些数据进行处理拟合&#xff0c;获得此线性关系。解决思路采用sklearn库中…

VS2022之DebuggerVisualizer

在Debug程序时&#xff0c;面对一些大集合&#xff0c;之前是这样查看的&#xff0c;如下图&#xff0c;这样看起来不直观&#xff0c;集合中的数据只能一个一个实体查看&#xff1a;VS2022预览版带来一个新功能&#xff0c;集合表格可视化&#xff0c;比如下面这样一段代码&am…

Web程序员的Mysql进阶序一之sql使用分类及基础

一般sql语句分为3类&#xff1a;DDL、DML和DCL。 DDL&#xff1a;数据库定义类操作&#xff0c;例如&#xff1a;create、drop、alter DML&#xff1a;数据库数据操作&#xff0c;例如&#xff1a;insert、delete、update、select DCL&#xff1a;数据库权限安全操作&#xff0…

NPOI 将DataGridView导出到Excel

导出为xls格式用HSSF&#xff0c;xlsx用XSSF。 1、类 using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Text; using NPOI.HSSF.UserModel; using System.IO; using NPOI.SS.UserModel;public class ExportExce…

android log.d 格式化,android – 在我的代码中使用Log.d()或Log.e()

考虑使用它&#xff1a;isLoggable()Checks to see whether or not a log for the specified tag is loggable at the specified level. The default level of any tag is set to INFO. This means that any level above and including INFO will be logged. Before you make a…

Java 调用存储过程 返回结果集

Java 调用存储过程 返回结果集 初学Java调用存储过程返回一行或多行结果集的实例转载于:https://www.cnblogs.com/kingxiaozi/p/4634803.html

loadrunner发送json_Loadrunner模拟JSON接口请求进行测试

Loadrunner模拟JSON接口请求进行测试一、loadrunner脚本创建1.Insert - New step -选择Custom Request -web_custom_request2.填入相应参数3.生成脚本&#xff0c;并修改如下(参数中的引号"前需要加斜杠\转译)Action(){web_custom_request("web_custom_request"…

SmartIDE支持开源国产IDE - 阿里蚂蚁的OpenSumi丨IDCF

作者&#xff1a;徐磊文章首发地址&#xff1a;https://smartide.cn/zh/blog/2022-0419-sprint16/SmartIDE v0.1.16 (Build 3137)已经在2022年4月19日发布到稳定版通道&#xff0c;我们在这个版本中增加了阿里和蚂蚁发布的国产IDE OpenSumi的支持&#xff0c;以及其他一些改进。…

windows之如何知道C盘目录下的大文件路径

1 准备linux的命令环境 window环境安装git,因为我们需要git bash,使用命令操作 2 用find和xargs命令 比如我们要知道C盘大于300M的文件路径和具体大小 我们打开git bash,然后cd到C盘&#xff0c;命令如下 find . -type f -size 300M | xargs du -h | sort -nr

js操作文件

在HTML表单中&#xff0c;可以上传文件的唯一控件就是<input type"file">。 注意&#xff1a;当一个表单中包含<input type"file">时&#xff0c;表单的enctype必须指定 为multipart/form-data,method必须指定为post&#xff0c;浏览器才能正确…

JavaScript读取本地图片到浏览器

代码: <html> <head> <script type="text/javascript"> function getFileUrl(sourceId) { var url; if (navigator.userAgent.indexOf("MSIE")>=1) { // IE url = document.getElementById(sourceId).value; } else if(navigator.…

Web程序员的Mysql进阶序二之sql多条数据插入、多条数据更新、多表同时查询

数据库在web开发的时候&#xff0c;减少连接次数可以降低数据库负载&#xff0c;所以一次连接&#xff0c;多数据操作可以有效的优化数据库。 假设表结构如下&#xff1a; create table test(name varchar(10),sex varchar(10) ); create table test1(name varchar(10),sex v…

Android封装快捷键,android打包一个没有快捷键的apk,并且通过另一个应用启动

1.有时候我们的需求是每个功能可能类似一个插件那样分开&#xff0c;需要我们分别不同开发2.首先我们如何安装apk之后不显示Lanch呢&#xff1f;android:name".app.Books.Books"android:configChanges"orientation|keyboardHidden|screenSize|smallestScreenSiz…

MVC 扩展方法特点

.NET MVC 3中扩展方法特点&#xff1a; &#xff08;1&#xff09;扩展类的名称以Extensions结尾&#xff1b; &#xff08;2&#xff09;扩展类的类型是static&#xff1b; &#xff08;3&#xff09;扩展方法至少有一个参数&#xff0c;第一个参数必须指定该方法作用于哪个类…

C# Linq源码解析之Aggregate

前言在Dotnet开发过程中&#xff0c;Aggregate作为IEnumerable的扩展方法&#xff0c;十分常用。本文对Aggregate方法的关键源码进行简要分析&#xff0c;以方便大家日后更好的使用该方法。使用Aggregate是对序列应用累加器的函数。看下面一段代码:List<string> lst new…