自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

从0到1,突破自己

努力创造自己的奇迹,而不是等待奇迹的发生。

  • 博客(823)
  • 资源 (44)
  • 收藏
  • 关注

原创 5.46 BCC工具之memleak.py解读

内存泄漏是指程序在分配内存后未能释放它,导致系统内存逐渐被消耗。在长时间运行的程序中,内存泄漏可能会导致性能下降、系统不稳定或其他问题。而memleak就是用于检测内存泄漏的工具,跟踪未被释放的杰出内存分配。它可以跟踪并匹配内存分配和释放请求,并为每个分配收集调用堆栈。然后打印出哪些调用堆栈执行了未随后释放的分配操作的摘要信息。支持使用libc函数进行的用户模式分配,以及使用kmalloc/kmem_cache_alloc/get_free_pages和相应的内存释放函数进行的内核模式分配。

2024-03-05 08:23:35 772

原创 5.45 BCC工具之kvmexit.py解读

kvmexit目的是为了定位频繁退出的原因,来提奥斯虚拟机的频繁退出可能会导致性能问题,并通过显示详细的退出原因以及在一台物理机器上运行的所有虚拟机的每个虚拟机退出的计数,找到减少甚至避免退出的解决方案。该工具有一定的限制,主要是鉴于不同架构的硬件辅助虚拟化技术,目前我们只适应intel中的vmx。

2024-03-05 07:11:49 124

原创 5.44 BCC工具之killsnoop.py解读

工具用于追踪通过 kill() 系统调用发送的信号,并实时报告相关信息。

2024-03-05 07:11:27 178

原创 5.43 BCC工具之exitsnoop.py解读

Linux将进程终止信息保存在'exit_code'中,这是一个int值,位于中定义的'task_struct'结构体内。非零退出值的含义取决于程序。exitsnoop --label=exit # 为每行输出添加 'exit' 标签。-x, --failed 只跟踪失败的情况,排除 exit(0)exitsnoop --per-thread # 跟踪每个线程的终止。-p PID, --pid PID 只跟踪此PID。--per-thread 跟踪每个线程的终止。

2024-03-04 07:23:57 176

原创 5.42 BCC工具之execsnoop.py解读

execsnoop工具通过跟踪exec()系统调用来跟踪短时进程(也称为瞬时进程或快速执行的进程)。当进程通过exec()系统调用执行新的程序时,execsnoop能够捕获这些事件,并输出短时进程的基本信息,包括进程PID、父进程PID、命令行参数以及执行的结果。例如当系统的CPU使用率和平均负载很高,但通过常规工具找不到高CPU使用率的进程时,可能是由于某些进程在不断崩溃和重启导致的。在这种情况下,execsnoop可以帮助识别这些短时进程,从而找到问题的根源。此外,execsnoop。

2024-03-04 07:23:20 198

原创 5.41 BCC工具之uthreads.py解读

uthreads工具跟踪Java或原始(C)pthreads中的线程创建事件,并打印新创建线程的详细信息。对于Java线程,会打印线程名;对于pthreads,如果有符号信息可以解析,则会打印线程的启动函数。

2024-03-03 08:26:19 172

原创 5.40 BCC工具之ustat.py解读

ustat是一个类似于“top”的工具,用于监控高级语言中的事件。它为每个使用Java、Node、Perl、PHP、Python、Ruby和Tcl运行时的进程打印关于垃圾收集、方法调用、对象分配以及各种其他事件的统计信息。

2024-03-03 08:25:55 238

原创 5.39 BCC工具之uobjnew.py解读

uobjnew工具统计了新的对象分配事件,并打印出统计信息,包括哪些对象类型被频繁分配,以及该类型已分配了多少字节。这有助于诊断常见的分配路径,而这些路径又可能会导致大量的垃圾回收。

2024-03-02 07:59:02 290

原创 5.38 BCC工具之ugc.py解读

ugc工具跟踪包括Java、Python、Ruby和Node在内的高级语言中的垃圾回收事件。如果可用,每个GC事件都会附带打印一些由该语言的运行时提供的附加信息。同时还会提供GC事件的持续时间。

2024-03-02 07:58:33 387

原创 5.37 BCC工具之uflow.py解读

uflow工具用于跟踪方法的进入和退出事件,并打印一个可视化的流程图,显示方法是如何进入和退出的,类似于带有断点的跟踪调试器。这对于理解Java、Perl、PHP、Python、Ruby和Tcl等高级语言中的程序流非常有用,这些语言为方法调用提供了USDT探测。

2024-03-01 08:37:13 332

原创 5.36 BCC工具之ucalls.py解读

ucalls工具总结了包括Java、Perl、PHP、Python、Ruby、Tcl和Linux系统调用在内的各种高级语言中的方法调用。它显示最常调用方法的统计信息,以及这些方法的延迟(持续时间)。通过系统调用支持,ucalls可以提供关于进程与系统交互的基本信息,包括系统调用计数和延迟。然后,可以使用其他BCC工具(如trace、argdist、biotop、fileslower等)进一步探索这些信息。

2024-03-01 08:36:54 298

原创 5.35 BCC工具之ttysnoop.py解读

ttysnoop工具用于探测 (snoop) 来自 TTY (Teletypewriter) 设备或 PTS (Pseudo-Terminal Slave) 设备的输出。TTY 设备通常代表终端,而 PTS 设备是伪终端的从设备,常用于例如 SSH、screen或tmux这样的会话。通过在内核层面捕获与特定 TTY 或 PTS 设备相关的输出。

2024-02-29 10:08:19 4238

原创 5.34 BCC工具之trace.py解读

trace工具可以指定跟踪函数并显示,可控制其输出格式来显示函数参数和返回值。

2024-02-29 10:08:01 172

原创 5.33 BCC工具之tplist.py解读

tplist工具用于列出系统中可用的内核跟踪点(tracepoints)和用户静态定义的跟踪(USDT)探针。包括它们的格式。它可以用来发现探针点,以便与trace和argdist工具一起使用。内核跟踪点分散在内核中,为块和网络I/O、调度、电源事件以及许多其他主题提供有价值的静态跟踪。USDT探针放置在库(如libc)和可执行文件(如node)中,并提供静态跟踪信息,这些信息可以在运行时(可选地)打开和关闭。

2024-02-28 07:26:48 134

原创 5.32 BCC工具之threadsnoop.py解读

【代码】5.32 BCC工具之threadsnoop.py解读。

2024-02-28 07:25:17 113

原创 5.31 BCC工具之syncsnoop.py解读

【代码】5.31 BCC工具之stackcount.py解读。

2024-02-28 07:24:52 402

原创 5.30 BCC工具之stackcount.py解读

stackcount工具用于跟踪函数并计算它们的频率,同时记录完整的堆栈跟踪,并为提高效率在内核中进行汇总。它使用专有的BPF映射表数据结构进行统计。然偶用户空间读取调用栈ID和统计数字,然后从BPF映射表中取出调用栈信息再对符号翻译和打印输出。以帮助开发者分析和理解程序在运行时的行为。性能场景上,例如,如果某个函数被频繁调用,或者某个调用路径占用了大量的 CPU 时间,那么这些信息就可以通过stackcount获取到。调试场景上,例如当程序出现故障时,stackcount。

2024-02-27 12:50:51 248

原创 5.29 BCC工具之reset-trace.sh解读

从文件名就可以理解这个工具是用来reset trace状态的。那么我们可能永远都不需要这个工具。如果你使用-9(以及其他信号,如SIGTERM)杀死bcc工具,或者bcc工具崩溃,那么内核跟踪可能会处于半启用状态。这听起来并不那么糟糕:可能只是向从未读取的环形缓冲区写入数据的开销。此工具可用于清理跟踪状态,重置并禁用活动跟踪。警告:确保没有其他跟踪会话处于活动状态,因为这可能会阻止它们(可能不优雅地)运行。

2024-02-27 04:51:15 133

原创 5.28 BCC工具之readahead.py解读

操作系统的读预取机制通过预先读取一些页面来优化顺序操作,从而避免更昂贵的文件系统操作。readahead工具在给定的负载下显示系统上读预取缓存的性能,以调查任何缓存问题。它显示了缓存中未使用页面的数量,并打印了一个直方图,显示它们在缓存中停留的时间。那readahead工具在什么应用场景下使用呢?假设你正在开发一个React Native应用程序,该程序在重新编码本地存储中的视频时会进行大量读取。通常,这样的应用程序会是多层的,并具有过渡性的库依赖关系。

2024-02-27 04:50:53 97

原创 5.27 BCC工具之opensnoop.py解读

opensnoop工具跟踪系统范围内的open()系统调用,并打印各种详细信息。

2024-02-26 08:54:24 150

原创 5.26 BCC工具之klockstat.py解读

跟踪内核互斥锁事件并显示锁统计信息。

2024-02-26 08:54:00 80

原创 5.25 BCC工具之inject.py解读

inject工具可以保证在给定调用链和一组可选的predicate的情况下,指定注入模式(kmalloc、bio等)的适当错误返回。此外,还可以选择打印生成的BPF程序,以供修改/调试之用。生成的程序在PID索引的堆栈上运行。一般来说,为了实现“仅在此调用链和这些predicate存在时失败”的目标,会在每个中间函数的kprobe/kretprobe上进行记录。Top层函数(调用链末端的函数)负责在kprobe中创建pid_struct,并在kretprobe中将其从映射中删除。

2024-02-25 13:25:28 42

原创 5.24 BCC工具之funccount.py解读

funccount工具可以追踪与指定模式匹配的函数、追踪点或USDT探针,并会在追踪过程中打印它们的计数摘要。

2024-02-25 12:57:33 77

原创 5.23 BCC工具之drsnoop.py解读

drsnoop是一个内存工具,它追踪全系统内存的direct reclaim(直接回收)操作,并打印出各种详细信息。

2024-02-24 23:15:41 116

原创 5.22 BCC工具之deadlock.py解读

deadlock工具用于检测运行进程中的潜在死锁(锁顺序反转),但它不适用于共享互斥锁或递归互斥锁。如果程序发现潜在的锁顺序反转,程序将转储互斥锁的循环和每个互斥锁被获取时的堆栈跟踪,然后退出。此程序只能找到在程序跟踪进程时发生的潜在死锁。它无法找到在程序附加到进程之前可能已经发生的死锁。由于这会跟踪被跟踪进程上的所有互斥锁的锁定和解锁事件以及所有线程创建事件,因此,如果进程具有许多线程和互斥锁,则此bpf程序的开销可能会非常高。您应该只在可以接受减慢速度的进程上运行此程序。

2024-02-24 23:15:37 142

原创 5.21 BCC工具之criticalstat.py解读

也可以参考:Linux内核的preemptoff和irqoff跟踪器,它们提供类似的跟踪但有一些限制。这些跟踪器用于在Linux内核中跟踪抢占关闭(preemptoff)和中断关闭(irqoff)的情况,但由于设计或实现的限制,它们可能无法提供与某些其他跟踪工具相同级别的详细信息或灵活性。因此,在使用这些跟踪器时,需要了解它们的适用范围和限制,并相应地调整跟踪策略。

2024-02-23 22:10:26 144

原创 5.20 BCC工具之compactsnoop.py解读

在系统范围内跟踪压缩区,并打印各种详细信息。是 Linux 内核提供的一个接口,用于主动触发内存整理(memory compaction)。内存整理是内核为了优化内存使用而进行的一种操作,它通过移动内存页来创建更大的连续内存块,从而满足某些内存分配请求对连续物理内存的需求。当向写入特定的值时,比如写入 1,就会触发系统主动进行一次内存整理。这种主动式的内存整理与系统在分配内存时由于当前内存分布无法满足应用需求而被动触发的内存整理相对。

2024-02-23 21:41:27 428

原创 5.19 BCC工具之capable.py解读

capable工具用于跟踪对内核函数的调用,该函数则用来执行安全能力检查,并为每个调用打印详细信息。

2024-02-22 23:29:00 150

原创 5.18 BCC工具之bpflist.py解读

bpflist工具显示当前正在使用BPF程序和映射的进程、pinned的BPF程序和映射以及已使能探针的进程。也就是说bpflist可以为我们展示出系统哪个BPF程序在运行,并打印相关的探针。

2024-02-22 23:07:02 234

原创 5.16 BCC工具之argdist.py解读

argdist.py工具用于跟踪指定的函数,并收集其参数并输出一个直方图,以及频率计数。我们可以用该工具来分析某个参数取值的分布,过滤并打印出我们感兴趣的参数,而无需附加调试器,并获得各种函数的一般执行统计信息。

2024-02-21 23:09:38 135

原创 5.17 BCC工具之bashreadline.py解读

工具用于打印系统中所有正在运行的shell中输入的bash命令。

2024-02-21 23:09:30 21

原创 5.15 BCC工具之kvm_hypercall.py解读

在该示例中,我们可以了解到如何使用eBPF(扩展BPF,Berkeley Packet Filter的扩展)和bcc(BPF Compiler Collection)来分析KVM(Kernel-based Virtual Machine)中的超级调用(hypercall)。即当exit_reason为VMCALL时,有状态的kvm_entry和kvm_exit记录以及相关的超级调用。

2024-02-19 22:23:19 187

原创 5.14 BCC工具之vfsreadlat.py解读

vfsreadlat.py工具用于跟踪VFS读取延迟分布情况,示例的运行结果是一个函数延迟分布直方图。

2024-02-19 22:11:59 105

原创 5.13 BCC工具之urandomread.py解读

urandomread工具用于演示如何在内核跟踪点进行插桩。

2024-02-18 22:34:04 60

原创 5.12 BCC工具之undump.py解读

undump工具用于ump UNIX 套接字数据包。这需要对内核函数进行动态跟踪,并且需要更新以匹配内核的改动。

2024-02-18 22:25:19 160

原创 5.11 BCC工具之statsnoop.py解读

从工具的名字也能知道,statsnoop工具用于跟踪stat()系统调用。那么stat()系统调用是做什么的呢?stat()是很常见的一种系统调用。用于获取文件或文件系统的状态信息。通过调用stat(),你可以获取到关于指定文件或目录的详细信息,如文件大小、文件类型、文件权限、文件所有者、文件创建/修改/访问时间等。

2024-02-17 22:13:34 255

原创 5.10 BCC工具之stacksnoop解读

stacksnoop用于跟踪内核函数,并打印出所有的内核栈。

2024-02-17 21:53:17 490

原创 5.9 BCC工具之nodejs_http_server.py解读

同样地,我们先了解下USDT,USDT即Userland Statically Defined Tracing,它是一种静态定义的跟踪技术,用于在用户空间应用程序中添加自定义的跟踪点。USDT利用DTrace(动态跟踪)框架,允许开发者在代码中定义跟踪点,并在需要时启用它们。这样,开发人员可以在不改变程序代码的情况下,对程序的运行时行为进行详细的分析和调试。nodejs_http_server同样利用了USDT来跟踪node.js HTTP服务器请求。

2024-02-17 21:36:48 99

原创 5.7 BCC工具之disksnoop.py解读

disksnoop工具用于追踪块设备的I/O,并在每次I/O执行完成后打印一行摘要信息;

2024-02-16 10:12:48 119

原创 5.8 BCC工具之mysqld_query.py解读

我们首先来看USDT,USDT即Userland Statically Defined Tracing,它是一种静态定义的跟踪技术,用于在用户空间应用程序中添加自定义的跟踪点。USDT利用DTrace(动态跟踪)框架,允许开发者在代码中定义跟踪点,并在需要时启用它们。这样,开发人员可以在不改变程序代码的情况下,对程序的运行时行为进行详细的分析和调试。而我们的mysqld_query就利用了USDT来跟踪MySQL server查询操作。

2024-02-16 10:12:29 302

收发彩信,自动打开数据连接

两个文件分别为在源码基础上进行修改后的文件,主要用于解决关闭数据连接后无法收发彩信

2014-07-07

视图缩放案例

这个小案例是主要用来演示一下如何点击一个图片按钮,对缩略图进行缩放操作。

2014-07-07

app之间交互(ComponentName)

这里简单介绍了以一下如何使用ComponentName来帮助我们实现App之间的交互

2014-07-03

版本控制器git-1.9.4(msysgit Windows版)

这里为大家提供了当前最新版本的msysgit版本控制器

2014-06-28

Android中app之间的交互

这里简单介绍了,不同app之间如何使用隐式intent进行交互

2014-06-27

Fragment与Activity使用接口进行交互

这里简单介绍了如何使用接口,来使fragment发送消息给activity

2014-06-27

Fragment与Activity使用Bundle传递数据

这里简单描述了以下Activity使用Bundle向Fragment传递数据

2014-06-27

Fragment与Activity使用Handler进行交互

这里简单介绍了Fragment和Activity使用Handler方式进行交互。

2014-06-27

实现TextView自由复制

自己参照Android系统源码中短信模块中代码,写了一个Demo程序实现TextView的自由复制,共享给大家参考。

2014-06-26

android手机USB驱动

用以android手机链接电脑用的USB驱动程序

2013-01-12

毕业设计-VC职工工资管理系统

这是一款毕业设计源程序和论文,希望能对大家的毕业设计有所帮助。

2013-01-12

毕业设计-( ASP精品课程网站

这是一款毕业设计源程序和论文,希望能对大家的毕业设计有所帮助。

2013-01-12

Asp电子商务网站

希望能对大家的毕业设计有所帮助,至少能起到一个参考资料,希望大家都能过关啦。

2013-01-12

andricoFacebook客户端

这是一款模仿andricoFacebook客户端的源程序代码

2013-01-11

Baidu_map(百度地图)Android平台开发指南文档

这是为android开发者在使用百度地图开放的api时,需要参考的开发指南文档

2013-01-10

android电子商城(客户端+服务器)

这是一个电子商城的android源代码,其中包括客户端和服务器,经过测试。希望能对初学者有所帮助。

2013-01-08

微博客户端源代码

这是一个关于微博客户端开发的源程序,对于初学者来说是一个易于模仿的案例,对初学者来说很有帮助,贵在模仿

2013-01-08

Android的一个仿酷狗播放器的应用程序源码

一个仿酷狗播放器的音乐播放器源码,对于初学者来说是一个很好的模仿例子

2013-01-03

p2p终结者局域网软件

想在局域网里游刃有余吗?下载来使用使用知道了。

2012-12-06

android工程师面试内部题

想转行做安卓的同志们,面试有这个,offer就不是问题了。

2012-12-06

pageowner 解析工具

该工具组合可以对pageowner进行不同维度的解析,包括下面3各方面: 1.通过关键函数对pageowner进行解析、统计,最终以进程级展示进程的cma内存使用情况,并通过占用size自动排序。 2.该工具可用于分拆pageowner信息,并以进程和线程进行分别拆分,用于更细力度的pageowner拆分。 3.该工具用于解析整个pageowner中各个进程的内存使用情况 解析工具的开发是为了在我们拆分内存布局的时候能够提高效率,不容易出错,达到事半功倍的效果。 在使用过程中,遇到任何问题,都可以免费提供支持。

2022-05-13

linux_kernel_config 中文手册(2.6.28)

linux_kernel_config 中文手册(2.6.28)

2022-04-30

opengrok-1.7.30.tar.gz

opengrok-1.7.30.tar.gz

2022-03-27

syslinux-6.03.tar.xz

syslinux-6.03.tar.xz

2022-03-27

jdk-11.0.14_linux-x64_bin.deb

jdk-11.0.14_linux-x64_bin.deb

2022-03-27

busybox-1.35.0.tar.bz2

busybox-1.35.0.tar.bz2

2022-03-27

高度精简LinuxOS

自定义打包的LinuxOS,该OS只有10M左右,仅包含LinuxKernel+Busybox;

2022-03-26

车载SOA软件架构技术规范

车载SOA软件架构技术规范

2022-03-20

ardupilot-master.zip开源固件源码

ardupilot-master.zip开源固件源码

2022-02-07

MP Mission Planner 飞控地面控制站

MP Mission Planner 飞控地面控制站

2022-01-29

helloworld.zip

HelloWorld

2021-05-11

SELinux4AndroidO

该文档包含如下: m4.pdf/configuring-selinux-policy-report.pdf/implementing-selinux-as-linux-security-module-report.pdf/The_SELinux_Notebook-4th_Edition.pdf/SEAndroid-NDSS2013.pdf/abs2014_seforandroid_smalley.pdf/SELinux_Treble.pdf

2018-02-05

recovery_l10n

这是Google官方发布的一款工具,用来合成recovery模式下文本本地化显示的工具,我已经编译成功,源码也一起上传了,有兴趣的同学可以下载下来研究一下!

2015-04-10

apktool+smali2java

apktool+smali2java方式反编译

2015-03-18

recovery下edify介绍

这个文件是有关edify脚本的一个简单介绍,是从源码中直接复制下来的

2015-02-13

解决彩信gif格式图附件不能正常播放

解决添加gif格式图片为彩信附件,预览不能正常播放,原因为图片由于超出附件大小限制而被压缩

2014-07-26

解决Android4.3彩信幻灯片中gif格式图片不能正常播放

本代码包解决了在Android4.3中MMS模块中添加幻灯片附件,在预览幻灯片的时候,gif格式图片不能够正常播放

2014-07-26

Android4.3系统内置音乐播放器

这是从android4.3中的源码抽取出来的,而且编译运行成功,有兴趣的朋友可以拿来研究一下。

2014-07-11

模仿Android4.3版本短信设置功能

在Android系统源码中所有应用的设置界面都使用preference,该资源源码是模仿短信app中设置界面的UI和部分功能。

2014-07-11

SmartTools

这个小工具可以自动帮助我们插入短信,通话记录,联系人,浏览器书签

2014-07-07

空空如也

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

TA关注的人

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