当前位置: 首页 > news >正文

136、【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(二)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【OS】【Nuttx】【周边】效果呈现方案解析:strace 日志解析(一)
分析了下 strace 的追踪日志以及里面 open 命令和 openat 命令的区别,下面继续来看下

strace 日志解析

上篇 blog 分析到了 openat 的函数声明,位于 /usr/include/fcntl.h
在这里插入图片描述
来看下这里的参数:

  • __fd:基础目录的文件描述符
  • __file:要打开的文件路径
  • __oflag:打开方式,比如只读,写入,创建等
  • 返回值:成功时返回一个文件描述符(file descriptor)

下面分析下这里面出现的一些宏定义
在这里插入图片描述

  • AT_FDCWD:特殊值,表示使用当前工作目录,当调用 openat(AT_FDCWD, “file.txt”, …) 时,等价于 open(“file.txt”, …),是 *at 系列函数的标准用法之一
    在这里插入图片描述
  • O_RDONLY,O_CLOEXEC,O_WRONLY,O_CREAT,O_TRUNC 等宏定义也可以在 nuttx 项目里面的 fcntl.h 头文件中找到
    在这里插入图片描述
  • O_RDONLY:以只读方式打开文件
  • O_WRONLY:以只写方式打开文件
  • O_RDWR:以读写方式打开文件,相当于 O_RDONLY | O_WRONLY
  • O_CREAT:如果文件不存在,就创建一个,必须配合第三个参数 mode(权限模式,比如这里的 0666)使用
    在这里插入图片描述
  • O_TRUNC:如果文件已存在且为普通文件,则清空其内容,必须配合 O_WRONLY 或 O_RDWR 使用,因为要写入
  • O_CLOEXEC:当程序调用 exec() 启动新程序时,自动关闭这个打开的文件描述符,防止文件描述符意外泄露给子进程,提高安全性

下面是第 2 行日志,表示该进程开始加载动态链接库缓存,让程序能快速找到其所依赖的库

2715206 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
  • 当程序启动时,ld-linux.so 动态链接器需要快速查找共享库 .so 文件
  • 这里 /etc/ld.so.cache 是缓存文件,由 ldconfig 生成,包含系统中所有可用共享库的路径,该缓存文件用 O_RDONLY 只读方式打开,并且如果启动了新进程就自动关闭该文件描述符
  • 这里返回了文件描述符 3,表示成功打开

下面是第 3 行日志,表示开始加载 C 标准库(glibc)

2715206 openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
  • 这里的 libc.so.6 是 Linux 下最核心的 C 运行时库,几乎所有程序都依赖它,这里的 *.so.6 中的 6 是 ABI(Application Binary Interface)版本号,表示 glibc 主版本号,当 ABI 发生不兼容变更时,版本号就会增加
  • 程序将打开这个标准共享库,并映射到内存中,这样可以调用 printf,malloc 等基础函数,注意区别,上一条日志是读取动态链接库缓存,这条日志是从缓存路径中打开 libc 二进制标准库文件
  • 另外,这条日志也返回了 3,这里说明前一个文件(ld.so.cache)已经被关闭了(前一个文件返回的描述符也是 3)

ok,先到这里,下篇 blog 继续

http://www.dtcms.com/a/436009.html

相关文章:

  • 呼市做网站建设的公司哪家好一个网站成本
  • 洛阳制作网站公司吗wordpress设置内存
  • wordpress vip会员主题企业seo顾问服务公司
  • 《进程概念(1)》
  • 北京企业模板建站南京今天重大新闻事件
  • Pulsar适配AI场景:从技术原理到实战落地
  • 石景山广州网站建设医院网站建设官网
  • 成都做网站的公司弄个小程序要多少钱
  • 手机报价网站大全宣传片拍摄内容
  • BTS7960 四轮前进测试 workable solution
  • 网站架设流程专门app软件制作费用
  • 计算机网站建设维护的目的wordpress 系统需求
  • 无形资产 网站建设官方网站建设与维护好处
  • 程序员用来做笔记的网站网站源码绑定域名
  • 网站建设开发ppt模板德州建设街小学网站
  • 【代码随想录day 34】 力扣 62.不同路径II
  • 哪些公司做网站好河南营销型网站建设
  • 做网站需要写程序绿色营销案例100例
  • 【Linux】进程间通信(1)
  • 域名所有人是网站名不能转出用凡科做网站要钱吗
  • asp.net网站开发上网站开发哪家公司电话
  • 个人做的网站有什么危险吗万网官网域名注册多少钱
  • 网站机房建设成本某公司网络营销现状分析
  • 服务器主机 网站安阳企业网站优化外包
  • DS container adapters <B> priority_queue in Huffman Algorithm 2/99
  • 英语学习-Saints042
  • 建立网站条件一级域名如何分发二级域名
  • wordpress发布失败手机网站优化需要注意什么
  • 北京模板网站建设wordpress远程本地化
  • 【P0】Spring Cloud 面试篇