linux内核调试环境搭建

版本linux4.17 ubuntu18.04
先给系统至少80G内存
1。编译内核
先配置文件
make mrproper
make menuconfig
我这里需要的依赖有

 sudo apt install make cmake gcc g++ clang
 sudo apt-get install libncurses5-dev libncursesw5-dev
 sudo apt install ncurses-dev
 sudo apt-get install bison
 sudo apt-get install flex
 sudo apt-get install linux-libc-dev:amd64
 sudo apt-get install libssl-dev

然后窗口调大点

打开相关选项:(我看了下好像全默认开启)
https://blog.csdn.net/ztguang/article/details/52410562

 Kernel: arch/x86/boot/bzImage is ready  (#1)
FATAL: drivers/scsi/am53c974.o has no symtab?
scripts/Makefile.modpost:92: recipe for target ‘__modpost‘ failed
Makefile:972: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev

sudo apt install libelf-dev
换内核就先修改:
sudo gedit /etc/default/grub
注释第二行:

更新
sudo update-grub2

///////////////////////
拷贝被调试机上编译出来的vmlinux 到调试机上,与内核源码同级目录(内存足够多把编译生成的中间文件也可以一起拷贝)
然后
第一步建立串口通信

测试

开启调试环境
打开 /boot/grub2/grub.cfg 文件,选择需要启动的内核版本,在尾部添kgdbwait kgdboc=ttyS0,115200
第一个菜单

对应

第二个菜单

对应

根据需要内核版本自定义设置
这里默认第一个菜单对一项
重启系统会断下

调试机
进入系统源码目录
gdb vmlinux

set remotebaud 115200 目前其实没有用
target remote /dev/ttyS0
还是有点问题 可能是符号也要拷贝吧

https://blog.csdn.net/ztguang/article/details/52410562
https://blog.csdn.net/u013470224/article/details/51314231
https://blog.csdn.net/swingwang/article/details/72331196

原文地址:http://blog.51cto.com/haidragon/2337256

时间: 2024-11-07 17:32:40

linux内核调试环境搭建的相关文章

MacOS内核调试环境搭建

http://ddeville.me/2015/08/using-the-vmware-fusion-gdb-stub-for-kernel-debugging-with-lldb http://ddeville.me/2015/08/kernel-debugging-with-lldb-and-vmware-fusion https://blog.csdn.net/qq_32400847/article/details/79297177 https://media.defcon.org/DEF

Linux内核调试方法总结

一  调试前的准备 二  内核中的bug 三  内核调试配置选项 1  内核配置 2  调试原子操作 四  引发bug并打印信息 1  BUG()和BUG_ON() 2  dump_stack() 五  printk() 1  printk函数的健壮性 2  printk函数脆弱之处 3  LOG等级 4  记录缓冲区 5  syslogd/klogd 6  dmesg 7 注意 8 内核printk和日志系统的总体结构 9  动态调试 六  内存调试工具 1  MEMWATCH 2  YAMD

通过虚拟机搭建windows内核调试环境

今天我们来记录下通过虚拟机搭建windows内核调试环境. 这里是官方文档. 1.在虚拟机设置中为目标计算机创建命名管道 2.在目标计算机中开启调试 3.在windbg中输入目标计算机(虚拟机)的地址信息 4.在windbg菜单中点击[Debug|Break]开始内核调试.

使用 VMware + win10 + VirtualKD + windbg 从零搭建双机内核调试环境

原总结debug调试kernel debugwindbgbcdeditvirtualKD转储双机调试双机内核调试 前言 当我们没有两台物理机时,又想做双机内核调试怎么办?当然是装虚拟机啦!本文总结了使用 VMware15.5 + win10 + virtualkd + windbg 搭建双机内核调试环境. 安装环境 VMware 版本: 15.5 pro .可以到 VMware 官网下载地址 下载最新版本. 我的物理主机系统:win10 1909.其它版本的 windows 也可以,VMware

Linux Kernel - Debug Guide (Linux内核调试指南 )

http://blog.csdn.net/blizmax6/article/details/6747601 linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环

linux内核调试指南

linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 建立调试环境 发行版的选择和安装 安装交叉编译工具 bin工具集的使用 qemu的使用 initrd.img的原理与制作 x86虚拟调试环境的建立 arm虚拟调试环境的建立 arm开发板调试环境的建立 gdb基础 基本命令 gdb之gui gdb技巧 gdb宏 汇编基础--X86篇 用户手册 AT&

Linux内核调试技术——jprobe使用与实现

前一篇博文介绍了kprobes的原理与kprobe的使用与实现方式,本文介绍kprobes中的第二种探测技术jprobe,它基于kprobe实现,不能在函数的任意位置插入探测点,只能在函数的入口处探测,一般用于监测函数的入参值.本文首先通过一个简单的示例介绍jprobe的使用方式,然后通过源码详细分析jprobe的实现流程. 内核源码:Linux-4.1.x 实验环境:Fedora25(x86_64).树莓派1b 1.jprobe使用实例 使用jprobe探测函数的入参值,需要编写内核模块.同k

s3c6410 Linux 驱动开发环境搭建

s3c6410 Linux 驱动开发环境搭建 -- 既然你是做Linux开发的,你还用虚拟机? 非常多人都在win下做开发,于是SD_writer.exe之类的烧写工具"大行其道",多是用虚拟机Linux. 全然转到Linux下学习開始蛮不爽的,开发板制作商送的教程都是些讲Win-CE的东东,感觉实质性的东西没什么.对于全然用Linux做开发的技术解说非常少,连烧写SD卡都用的win以下的程序.后来找了些资料,整理在这里,希望留给有心人.共同营造一个更好的共同学习的环境. 当别人遇到困

Linux虚拟机学习环境搭建—虚拟机安装

接上一篇的Linux虚拟机学习环境搭建-虚拟机创建"  点击"开启此虚拟机",进入系统安装界面. Tab键可以调整选项,直接选择第一项,回车.备注:鼠标点击进入虚拟机,要跳出虚拟机回到主机控制,按下Ctrl+Alt. 出现Disc Found界面,用Tab键,选择到Skip选项,回车.备注:此操作是校验安装文件是否有损坏,现在是安装学习测试机,跳过校验. 进入到图标界面,单击 "下一步" 进入到语言选择界面,此处选择"English",