11 2022 档案

GCC-2——杂项汇总
摘要:1. __builtin_constant_p 它是GCC的内建函数,用于判断一个值是否为编译时常数,如果参数是常数,函数返回 1,否则返回 0。 #include <stdio.h> #define MAX 10 //built in constant int global = 10; //non 阅读全文

posted @ 2022-11-26 23:19 Hello-World3 阅读(73) 评论(0) 推荐(0) 编辑

ebpf-5——打印java栈回溯
摘要:1. 使用举例 root@localhost:/# export BCC_PERF_UNWIND=1 BCC_DBGSYMS=1 root@localhost:/# bpftrace -e 'u:/system/framework/arm64/boot-framework.oat:android.a 阅读全文

posted @ 2022-11-23 14:38 Hello-World3 阅读(464) 评论(0) 推荐(0) 编辑

Futex-3—Noraml Futex驱动分析
摘要:基于 Linux-5.15,下文中进程和线程同指向。 一、Noraml Futex驱动简介 futex驱动提供一种内核阻塞用户空间进程的机制。futex系统调用提供了三种配对的调用接口,满足不同使用场合的,分别为 noraml futex,pi-futex,requeue-pi。本文只讲解 fute 阅读全文

posted @ 2022-11-16 21:37 Hello-World3 阅读(622) 评论(0) 推荐(0) 编辑

GCC-1——内嵌原子操作和内核原子操作
摘要:一、GCC内嵌原子操作翻译 5.44 用于原子内存访问的内置函数 以下内置函数旨在与英特尔安腾处理器特定应用程序二进制接口第 7.4 节中描述的函数兼容。 因此,它们偏离了使用“__builtin_”前缀的正常 GCC 实践,并且它们被重载以便它们可以在多种类型上工作。 英特尔文档中给出的定义只允许 阅读全文

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

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

posted @ 2022-11-08 11:57 Hello-World3 阅读(1605) 评论(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 阅读(471) 评论(0) 推荐(0) 编辑

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

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

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

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

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

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

导航