【Linux】进程ID和线程ID在日志中的体现

在分析内核打印日志流程的时候,发现有时候同一个进程函数调用关系比较混乱(因为只打印了进程号),现象就是一个函数走着走着不知道走哪里去了。 

另一个现象是,在Linux启动Firefox的时候,启了大概80个进程,其实这个时候也有点怀疑: 

Linux内核裁剪后编译重启查看日志_哔哩哔哩_bilibili

 

有点类似开始分析打印日志的时候,有多进程时,如果未把多进程的ID打印出来,是不太容易分析出来函数调用流程的,如下图所示红色方框这个字段,(注意,这图未针对函数调用关系混乱)

本来想的是,会不会是因为进程内多线程函数调用导致?

然后在网上搜索了下:看到一篇文章:

https://zhuanlan.zhihu.com/p/673084366

然后看了下fork.c的copy_process,然后看到创建进程后的pid和tgid的设置,如下图所示: 

这里可以看出,在创建进程的时候(实际有可能是线程) ,这个pid是不断变化的,但是如果是创建线程,tgid的值实际上是父进程的值,从上图中可以看出,父进程的tgid值是等于pid的值的(2507行和2516行)。

那么在原有的日志打印宏基础上需要添加task_struct->pgid的值,并且需要验证是不是这回事(其实原来的宏里已经包含这一字段):

这里需要注意的是:

1、测试的时候打印日志开关:touch LOG_MORE 

2、日志增长速度很快,日志打印开关打开了10秒,在这10秒内打开FireFox,然后访问百度,百度网页打开后,马上关闭日志打印:touch LOG_STOP,这个过程持续10多秒,日志63M:

然后查找进程名为:firefox的进程 

基于上面的描述,这个进程应该是主进程,再找找看看有没有线程:

 

等等。

这个pr_info_self打印宏其实还挺厉害,尤其是结合内核裁剪后,说不定更厉害。。。。。

感谢阅读。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Rocky linux 修改ip地址, rocky服务器修改静态地址, rocky虚拟机修改ip

1. 更新yum yum update 2. 安装ifconfig yum install net-tools 3. 修改配置 vi /etc/NetworkManager/system-connections/ens33.nmconnection 将ipv4内容修改如下: # 自动改为手动 methodmanual # 网关为vm ware 查看网关地址 address你想改为的ip/24,网关 #dns不…

Linux基础-shell的简单实现

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux基础-shell的简单实现 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1, 全局变…

MatLab Desired port was :31515解决方案

前言:使用的MatLabR2022b今天突然出现了错误,在程序中打不开文件。后尝试了下面的方法,可以解决。 解决方法一: 搜索栏输入:firewall.cpl 找到相关项,右键属性,设置为允许。 之后就可以了…

超声波清洗机双十一值得买吗?2024四款顶级超声波清洗机推荐!

许多朋友们可能还在犹豫不决,思考着在双十一这个购物狂欢节里,究竟应该选择哪一款品牌的超声波清洗机来购买呢?不用担心,今天我将为大家详细解读2024年四款备受瞩目的顶级超声波清洗机,让你在双十一的购物狂欢中不再感…

地理空间与交通流量数据集:TaxiNYC、TaxiBJ、BikeDC和BikeNYC

目录 TaxiNYC数据集TaxiBJ数据集BikeDC数据集1. **数据来源与时间范围**2. **数据内容**3. **区域划分与站点处理**4. **图结构构建**5. **人群流动计算**6. **数据集的应用场景**7. **预测任务设置**8. **图的构建** BikeNYC数据集1. **数据来源与时间范围**2. **数据内容**3.…

单位评职称需要在指定媒体上投稿发表文章看我如何轻松应对

在职场中,晋升与评职称是一项不可或缺的任务,而在这个过程中,完成相关的投稿更是至关重要。作为单位的一名员工,当我得知自己需要在指定的媒体上发表文章以满足职称评审要求时,心中既期待又忐忑。起初,我选择了传统的邮箱投稿方式,然而却没想到,这条路竟让我倍感挫折。 刚开始,…

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling 摘要:引言:背景3 flexMatch3.1 Curriculum Pseudo Labeling3.2 阈值预热3.3非线性映射函数实验4.1 主要结果4.2 ImageNet上的结果4.3收敛速度加速4.4 消融研究5 相关工作摘要: 最近提出的Fi…

◇【论文_20150225】 DQN_2015(nature) 〔Google DeepMind〕

整理代码 1:DQN CartPole_v1.ipynb https://www.nature.com/articles/nature14236 Human-level control through deep reinforcement learning 文章目录 摘要主体:要做什么 如何做的 要点keypoints实验 与 评估2 个指标和 各游戏的最好方法比较t-S…

数据湖新突破:Hudi让实时数据分析更高效!

开源数据湖对比 Hudi的使用收益 Hudi使用成效 Hudi内部机制 增量摄入与更新 Hudi使用一种混合日志存储模式(称为Copy-on-Write),可以同时处理基础数据文件(Parquet)和增量日志(HoodieLogFile)。以 MergeOnReadTable 的 upsert 操作为例,当有新数据到来时,Hudi会先将数据以行…

【OpenMMLab】MMagic入门

1. 概述 OpenMMLab 概述:OpenMMLab 是上海人工智能实验室的计算机视觉算法开源体系,是深度学习时代全球领域最全面、最具影响力的视觉算法开源项目,也是全球最大最全的开源计算机视觉算法库。特点: 丰富的算法库:已累…

第三天-128.最长连续序列

这道题我完全没有思路,求助gpt,让它给我思路: 这个问题要求找出数组中数字连续的最长序列,并且时间复杂度必须是 O(n),可以采用 哈希集(HashSet)来帮助我们高效地判断数字是否存在。以下是解决…

AI周报(10.13-10.19)

AI应用-清华校友用AI破解162个高数定理 加州理工、斯坦福和威大的研究人员提出了LeanAgent——一个终身学习,并能证明定理的AI智能体。LeanAgent会根据数学难度优化的学习轨迹课程,来提高学习策略。并且,它还有一个动态数据库,有效…

Ubuntu如何显示pcl版本

终端输入: apt-cache show libpcl-dev可以看到,Ubuntu20.04,下载的pcl,应该都是1.10版本的

百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现

0x01 产品描述: 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能&#…

执行php artisan storage:link报错

php artisan storage:link Call to undefined function Illuminate\Filesystem\symlink() 参考文章 https://learnku.com/laravel/t/73729

基于web的酒店客房管理系统【附源码】

基于web的酒店客房管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 用户信息管理 5.2 会员信息管理 5.3 客房信息管理 5.…

基于SpringBoot健康生活助手微信小程序【附源码】

基于SpringBoot健康生活助手微信小程序 效果如下: 管理员登录界面 管理员主界面 用户管理界面 健康记录管理界面 健康目标管理界面 微信小程序首页界面 活动信息界面 留言反馈界面 研究背景 近年来,由于计算机技术和互联网技术的飞速发展,…

SAP PP之功能 动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试

SAP动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试 概念及计算逻辑: 动态安全库存(Dynamic Safety stock): 它根据平均的日需求(Average daily requirements)数量&am…

父子元素中只有子元素设置margin-bottom的问题

问题代码如下所示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.div1 {background-color: red;width: 80px;height: 80px;border: 1px solid orange;}.div2 {bac…

STM32—FLASH闪存

1.FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过闪存存储器接口&#xff08;外设&#xff09;可以对程序存储器和选项字节进行擦除和编程 我们怎么操作这些存储器呢&#xff1f;这就需要用到这个闪存存储器接口了&#xff0c;闪…