上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 66 下一页

2022年11月8日

GDB-4——Android设备中使用GDB调试程序的例子

摘要: 一、一个简单的例子 1. 实验Demo (1) Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_SRC_FILES:= mytest.c LOCAL_MODULE:= mytest LOCAL_C_FLAGS + 阅读全文

posted @ 2022-11-08 11:54 Hello-World3 阅读(463) 评论(0) 推荐(0) 编辑

GDB-3——GDB实用调试技巧

摘要: 1. 将 print 显示的字符串或字符数组显示完整 当我们使用 print 命令打印一个字符串或者字符数组时,如果该字符串太长,print 命令默认显示不全的,我们可以通过在 gdb 中输入 set print element 0 设置一下,这样再次使用 print 命令就能完整地显示该变量所有字 阅读全文

posted @ 2022-11-08 11:51 Hello-World3 阅读(741) 评论(0) 推荐(0) 编辑

GDB-2——GDB调试多线程

摘要: 一、简介 前一博文实际上已经介绍了多线程的调试方法,这节专门进行一下总结。 二、调试多线程 1. 使用 gdb 将程序跑起来,然后按 Ctrl + C 将程序中断下来,使用 info threads 命令查看当前进程有多少线程。 2. 使用 thread <线程编号> 可以切换到对应的线程,然后使用 阅读全文

posted @ 2022-11-08 11:46 Hello-World3 阅读(3762) 评论(0) 推荐(1) 编辑

GDB-1——GDB初探

摘要: 一、GDB简介 在 Linux 编程中,通常使用 gdb 来调试 C/C++ 应用程序。若想调试内核可以使用GTAG(不方便,需要硬件上飞线)或使用Qemu,清华大学相关网址上有介绍Qemu是怎么配置的。 二、给被调试程序加调试信息 1. gcc 编译程序时加上 -g 编译选项以便能晰地看到调试的每 阅读全文

posted @ 2022-11-08 11:42 Hello-World3 阅读(642) 评论(0) 推荐(1) 编辑

2022年10月19日

timerslack 与 sleep()/usleep()

摘要: 一、简介 1. timerslack 是 Linux 系统为了降低系统功耗,避免 timer 时间参差不齐,过于的频繁的唤醒 cpu,而设置的一种对齐策略。内核中将相近的定时器到期时间汇聚在一起,这会导致到期时间比定时时间晚一些(但不会提前)。 2. 会被timer slack到期时间影响的函数集有 阅读全文

posted @ 2022-10-19 22:34 Hello-World3 阅读(916) 评论(0) 推荐(0) 编辑

2022年10月15日

Linux 性能1-perf

摘要: 参考: 一文看得 Linux 性能分析|perf 原理:https://mp.weixin.qq.com/s/Vj418ZwVe6PxE1erDu8bkg一文看懂 Linux 性能分析|perf 实现:https://mp.weixin.qq.com/s/6kTe0eO1AmPPHbSQ_2Ld_Q 阅读全文

posted @ 2022-10-15 10:23 Hello-World3 阅读(66) 评论(0) 推荐(0) 编辑

2022年10月13日

进程管理1——进程和线程的差异

摘要: 一、创建传参差异 1. 线程创建 /* pthread_create //glibc __pthread_create_2_1 create_thread do_clone clone //系统调用 */ static int create_thread (struct pthread *pd, . 阅读全文

posted @ 2022-10-13 15:06 Hello-World3 阅读(131) 评论(0) 推荐(0) 编辑

2022年10月11日

tracer ftrace笔记(10)—— trace内容分析

摘要: 基于Linux-5.10 一、trace打印格式 1. 在把 raw trace 数据格式化成用户可读的形式时,trace数据分成两部分:一部分是 common 信息,一部分是用户自定义的 trace 信息,这两部分分开格式化。 common信息: 这部分有系统根据当前是 “Normal forma 阅读全文

posted @ 2022-10-11 16:57 Hello-World3 阅读(895) 评论(0) 推荐(0) 编辑

tracer ftrace笔记(9)—— TRACE_EVENT 初始化

摘要: 基于Linux-5.10 一、内核启动时遍历 trace_event_call 初始化流程 1. TRACE_EVENT()多次展开定义了各种实现函数以后,最终把本 event 的所有的函数和数据存放在一个类型为 struct trace_event_call 的顶层变量中,并且会把指针存放到 se 阅读全文

posted @ 2022-10-11 16:22 Hello-World3 阅读(518) 评论(0) 推荐(0) 编辑

2022年10月2日

调度器40—sched_features

摘要: 基于 Linux-5.10 一、实验 1. kernel/sched/debug.c 中将以debugfs文件导出的 sched_feat_fops 文件改为procfs导出。 static const struct proc_ops sched_feat_proc_fops = { .proc_o 阅读全文

posted @ 2022-10-02 20:51 Hello-World3 阅读(492) 评论(0) 推荐(0) 编辑

上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 66 下一页

导航