linux 调试-kdb 调试内核-1

目标:打印bcm2835_spi_transfer_one 是如何从用户空间开始调用的

1. kernel 配置

        KDB配置选项

          添加 spi 控制器驱动 和 spi 设备驱动        

 2. 调试流程

调试内核-系统启动之后

1. 开发板进入kdb,等待pc 连接

 root@raspberrypi:~# echo "ttyS0,115200" > /sys/module/kgdboc/parameters/kgdboc

 root@raspberrypi:~# echo g > /proc/sysrq-trigger;

  备注: 串口要选正确,否则kdb 终端 会卡死

2. pc 连接 kdb,并设置断点

     gdb-multiarch   vmlinux   --ex "target remote /dev/pts/3";
     (gdb)b  bcm2835_spi_transfer_one
     (gdb)continue    // 开发板进入用户终端交互模式,可以执行shell 命令

3. 开发板触发中断

        root@raspberrypi:~# echo 555 > /dev/spidev0.0

4.1  pc  捕获断点, 可以执行gdb 命令(如 bt)

4.2  pc gdb 删除断点,运行contine=》开发板将退出kdb ,进入用户终端

截图说明       

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/671324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件加密软件排行榜前五:好用的文件加密软件推荐

后台有很多老板留言,说最近机密数据外泄的事情频发,让自己开始有了危机意识,想要提前针对企业安全问题采取措施,比方说选一款适合防泄密软件,但是不知道如何选择。 下面介绍几款软件,让大家了解一下市面上常…

贪吃蛇项目(小白保姆级教程)

游戏介绍 游戏背景: 贪吃蛇游戏是经典的游戏项目之一,也是很简单的小游戏 实现背景: 这里我们是基于32位的Win32_API进行实现的 需要的知识点: C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32_API等 适合人群&a…

Android:弹出对话框方式梳理一览(一)

Android:弹出对话框方式梳理一览(一) Guide|导言 在Android开发中,对话框可能是我们与用户交互的非常常用的方式,包括弹出一个小界面,可能在实际场景中都非常实用。本篇文章主要就是对Android弹…

245 基于matlab的MEEMD信号分解及重构算法

基于matlab的MEEMD信号分解及重构算法。MEEMD方法的主要步骤包括:1. 定义多元信号集合,将多个信号进行集合;2. 对多元信号集合进行EEMD分解,得到一组IMFs;3. 将相同IMF进行平均,得到改进的IMFs;…

2路模拟音频光端机 JR-CA02

概述 JR-CA02光端机由发送机JR-CA02 Tansmitter和接收机JR-CA02 Receiver组成,通过一定距离长度的光纤相连接,传输2路Audio模拟音频(即1路立体声)。且每路音频分配输出。 JR-CA02光端机具有运行主要技术参数的监测功能&#xff…

03_Redis

文章目录 Redis介绍安装及使用redis的核心配置数据结构常用命令stringlistsethashzset(sortedset) 内存淘汰策略Redis的Java客户端JedisRedisson Redis 介绍 Redis是一个NoSQL数据库。 NoSQL: not only SQL。表示非关系型数据库(不支持SQL标准语法)。 …

Java特性之设计模式【享元模式】

一、享元模式 概述 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式 享元模式尝试重用现有的同类对…

RAG 修炼手册|一文讲透 RAG 背后的技术

今天我们继续剖析 RAG,将为大家详细介绍 RAG 背后的例如 Embedding、Transformer、BERT、LLM 等技术的发展历程和基本原理,以及它们是如何应用的。 01. 什么是 Embedding? Embedding 是将离散的非结构化数据转换为连续的向量表示的技术。 在自然语言…

spring高级篇(十)

1、内嵌tomcat boot框架是默认内嵌tomcat的,不需要手动安装和配置外部的 Servlet 容器。 简单的介绍一下tomcat服务器的构成: Catalina: Catalina 是 Tomcat 的核心组件,负责处理 HTTP 请求、响应以及管理 Servlet 生命周期。它包…

win2012磁盘空间不足,c盘正常,d盘无法写入,如何解决?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

android系统serviceManger源码解析

一,serviceManger时序图 本文涉及到的源码文件: /frameworks/native/cmds/servicemanager/main.cpp /frameworks/native/libs/binder/ProcessState.cpp /frameworks/native/cmds/servicemanager/ServiceManager.cpp /frameworks/native/libs/binder/IP…

WireShark对tcp通信数据的抓包

一、抓包准备工作 安装wireshark sudo apt update sudo apt install wireshark 运行 二、WireShark工具面板分析 上图中所显示的信息从上到下分布在 3 个面板中,每个面板包含的信息含义如下: Packet List 面板:显示 Wireshark 捕获到的所…