自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 基于eBPF的procstat软件追踪程序Offcpu时间

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。procstat能够用于追踪程序的Offcpu时间。该软件通过eBPF技术,可以深入到Linux内核内部,监控操作系统的调度行为,实时捕捉程序的调度状态。

2024-07-12 17:16:01 1605

原创 基于eBPF的procstat软件追踪等待锁和持有锁的时间

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。同时,procstat也可用于追踪C/C++程序的等待锁和持有锁的时间。该软件通过eBPF技术,可以深入到标准库内部,监控线程的锁定和解锁行为,实时捕捉程序的运行状态。当检测到加锁和等待锁时间超过阈值的情况时,procstat会在日志中输出详细的警告信息,帮助开发者快速定位问题根源。

2024-07-09 12:50:15 791

原创 基于eBPF的procstat软件定位软件死锁

procstat是一款基于eBPF的监控工具软件,运行在Linux平台,主要用于跟踪目标程序的运行状态,并报告异常指标,是分析程序性能问题的一大利器。同时,procstat也可用于检测和定位C/C++多线程程序中的死锁问题。

2024-07-05 12:58:22 980

原创 动态控制eBPF程序加载:检查 Tracepoint、Kprobe是否存在

在 eBPF 程序开发中,确保程序能够在各种不同的系统配置中兼容运行是至关重要的。本文将详细介绍一个方案,通过动态检查Tracepoint、Kprobe是否存在,并结合libbpf的API接口控制 eBPF 程序的加载。这种方法不仅可以提升程序的灵活性,还能提高其在不同内核版本和系统配置中的兼容性。检查指定的 Tracepoint 是否存在;检查指定的 Kprobe 是否存在;

2024-06-02 22:23:47 776

原创 GDB对Linux信号的处理方式

文旨在深入探讨GDB如何处理Linux信号,以及不同信号处理方式对调试的影响。

2024-05-22 17:28:50 1110

原创 gcc编译选项-Wl,-Bsymbolic/-Wl,-Bsymbolic-functions解决动态库符号冲突问题

使用gcc编译选项-Wl,-Bsymbolic或-Wl,-Bsymbolic-function解决动态库符号冲突问题。

2024-05-17 17:15:45 1976

原创 替换动态库的函数实现

如何使用自己实现的函数替换掉动态链接库中的函数实现。

2024-05-15 08:30:18 513

原创 使用gperftools对C++程序进行profile定位性能瓶颈

如何使用gperftools工具定位C/C++程序的性能瓶颈,并用kcachegrind工具进行可视化展示。

2024-05-09 17:26:46 2308

原创 性能测试缩减系统内存

性能测试中,如何调整Linux服务器的可用内存大小。

2024-05-08 17:27:02 409

原创 使用gdb判断Segmentation fault (core dump)是否为栈溢出导致

当发生coredump时,如何快速的排查是否是由于栈溢出导致的。

2024-05-07 12:38:13 816

原创 性能测试缩减CPU核数

性能测试中,如何动态调整Linux服务器的CPU核数

2024-05-06 21:33:06 457 2

原创 linux静态库合并实践

将多个静态库合并成一个

2024-05-05 23:58:36 580

原创 gdb调试C++多线程程序

使用gdb调试C++多线程程序

2024-05-04 00:57:46 1093

原创 C/C++多线程中互斥锁如何影响内存的可见性

C/C++多线程并发编程中,互斥锁如何影响内存的可见性

2024-05-02 01:04:51 599

原创 gdb调试时更换源码目录

使用gdb调试时切换源代码目录

2024-04-30 19:00:51 912

原创 使用gdb调试C++程序的汇编代码

使用gdb调试C++程序的汇编代码

2024-04-29 22:14:33 2220

原创 剥去ELF可执行文件中的Debug信息

为ELF可执行文件剥除/添加调试信息

2024-04-28 10:39:02 472 1

procstat-0.0.2.20240703-beta

软件名称 : procstat 版本号 : 0.0.2.20240703_beta 功能: 此软件是一个性能追踪工具,基于ebpf技术实现,能够跟踪目标程序的运行状态,并报告异常指标,是分析程序性能的一大利器 运行平台:Linux 内核版本要支持ebpf、CORE 支持的操作系统:CentOS Stream 8+、Redhat 8+、Fedora 36+ 其他操作系统,后续会进行测试。 依赖的库:libelf changelog: 1. 支持检测死锁,c库的pthread_mutex_lock,C++的mutex 2. 增加clean.sh脚本,方便删除日志 Copyright (c) 2024 Liu Hua Jun All rights reserved. 自带授权码,一个月内有效。欢迎试用,并提出宝贵意见!

2024-07-03

procstat-0.0.1.20240701-beta

软件名称 : procstat 版本号 : 0.0.1.20240701_beta 功能: 此软件是一个性能追踪工具,基于ebpf技术实现,能够跟踪目标程序的运行状态,并报告异常指标,是分析程序性能的一大利器 运行平台:Linux 内核版本要支持ebpf、CORE 支持的操作系统:CentOS Stream 8+、Redhat 8+、Fedora 36+ 其他操作系统,后续会进行测试。 依赖的库:libelf Copyright (c) 2024 Liu Hua Jun All rights reserved. 自带授权码,一个月内有效。欢迎试用,并提出宝贵意见!

2024-07-02

禁用某eBPF程序源代码

在 eBPF 程序开发中,确保程序能够在各种不同的系统配置中兼容运行是至关重要的。本源码展示了如何使用libbpf的API接口将不存在的挂载点对应的eBPF程序禁止加载。这种方法不仅可以提升程序的灵活性,还能提高其在不同内核版本和系统配置中的兼容性。

2024-06-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除