上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 70 下一页

2022年11月8日

GDB-5——gdb tui在gdb中显示程序源码

摘要: 一、简介 gdb 在调试的时候不能很好的展示源码。gdb 里面可以用 list 命令显示源码,但是 list 命令显示没有代码高亮,也不能一眼定位到正在执行的那行代码在整个代码中的位置。可以使用 gdb 自带的 gdbtui。 二、使用方法 1. 开启gdb tui模式 方法一:使用 gdbtui 阅读全文

posted @ 2022-11-08 11:57 Hello-World3 阅读(1855) 评论(0) 推荐(0)

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 阅读(638) 评论(0) 推荐(0)

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

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

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

GDB-2——GDB调试多线程

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

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

GDB-1——GDB初探

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

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

2022年10月19日

timerslack 与 sleep()/usleep()

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

posted @ 2022-10-19 22:34 Hello-World3 阅读(1202) 评论(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 阅读(80) 评论(0) 推荐(0)

2022年10月13日

调度器57-2-进程和线程的差异

摘要: 一、创建传参差异 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 阅读(181) 评论(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 阅读(1137) 评论(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 阅读(667) 评论(0) 推荐(0)

上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 70 下一页

导航