如何利用硬件watchpoint定位踩内存问题
一、首先确认是否支持硬件watchpoint 二、打开监控模式 三、设置watchpoint 四、参考资料 本文介绍如何使用ARM平台的硬件watchpoint定位踩内存问题,特别是如何在运行过程中自动对特定内存区域添加watchpoint。 在踩内存问题中,最困难的就是找出元凶。常见排查手段如下: 通过gdb打内存断点(添加watchpoint), 看看谁非法访问了...
一、首先确认是否支持硬件watchpoint 二、打开监控模式 三、设置watchpoint 四、参考资料 本文介绍如何使用ARM平台的硬件watchpoint定位踩内存问题,特别是如何在运行过程中自动对特定内存区域添加watchpoint。 在踩内存问题中,最困难的就是找出元凶。常见排查手段如下: 通过gdb打内存断点(添加watchpoint), 看看谁非法访问了...
一、什么是栈溢出 二、GCC栈溢出保护的工作原理 三、开启GCC栈溢出保护 四、参考资料 本文是对Using GCC’s Stack Smashing Protector on microcontrollers的意译,中间插入了较多自己的理解,主要介绍如何在嵌入式实时操作系统(RTOS)中使用GCC的栈溢出保护功能(Stack Smashing Protection,简称SS...
一、背景 二、原理 三、实现 四、优劣点分析 本文介绍一种通过文件描述符重定向终端输入/输出的方法。 一、背景 一些嵌入式设备,一般都会留有调试串口,经由RS232/485标准与PC的COM口相连,将打印输出在PC上显示,并可以接收PC端的输入,如下图所示: 设备出厂部署后,不方便接调试串口,查看设备输出就变得比较困难,不利于问题定位。 如果设备具有联网能力,我们可...
近期换了华为手机,系统是EMUI 8.2.0,在安装google服务的时候颇费了一番周折。 之前能用的一些google服务安装器在该系统上均无法工作,最后从应用汇上下载了一个gms安装软件,可是华为系统提示“该应用会破坏系统,禁止安装”。 开启设置里面的未知来源应用下载,并禁用外部来源应用检查,还是不允许安装。 后来从花粉俱乐部了解到可以通过以下方式安装: 把该apk拷贝到电脑...
一、空口抓包 1. 原理 2. 操作方法 二、实例分析 1. 手机兼容性问题 2. Wi-Fi省电模式 3. 其他适用场景 随着IoT的兴起,越来越多的嵌入式设备内置Wi-Fi模块,具备了网络接入能力。 在开发过程中,难免会遇到各种各样的网络问题,而抓包无疑是分析网络问题最直...
一、安装交叉编译工具链 二、安装arm模拟器qemu 三、通过gdb调试arm程序 四、参考文档 没有开发板,如何调试运行arm程序? 本文主要讲解如何在Ubuntu上搭建arm交叉编译、运行环境。 一、安装交叉编译工具链 安装交叉编译工具链arm-linux-gnueabihf-gcc: sudo apt-get install gcc-arm-linux-gnuea...
一、实现思路 二、使用方法 三、编译方法 在基于RTP的实时码流传输过程中,经常会遇到音视频卡顿、花屏的现象。对于这类问题,如何定位? 下面这个工具可以帮助分析类似问题: https://github.com/sigusr1/rtp_parse_from_pcap 一、实现思路 从传输的角度看,造成卡顿、花屏的常见原因如下: 接收端收到的帧不完整(可能是发送方发的就不完...
实际工作中,我们经常会向其他同事咨询一些技术问题。但是,他给出的答案一定是正确的吗? 近期项目组遇到这么个问题,Android平台上软件解码RTSP实时视频流CPU占用率较高,打算切换到硬件解码。但是在调用硬件解码接口的时候返回失败,原因是视频流的分辨率信息未知,结果又自动切换回了软解。 那么,基于RTSP传输的视频流,一般可以从哪里获取分辨率信息呢? RTSP报文中的SDP,一...
需求 适配方法 方法一:通过va_list传递变参 方法二:宏重定义 方法三:函数指针 性能分析 其他 参考资料 嵌入式开发中经常需要跨平台移植,但是不同平台的系统函数通常不一样,如果能封装一个平台适配层,将底层系统差异和上层业务代码隔离,移植起来将事半功倍。 需求 系统层次结构如下所示: 平台适配...
一、 TCP连接建立过程 1. 三次握手 2. 同时打开 3. 自连接 二、 TCP连接断开过程 1. 四次挥手 2. 同时关闭连接 三、 常见问题 1. 为什么要三次握手建立连接 2. 为什么要四次挥手断开连接 3. 为什么TIME...