最近在学着编写一个操作系统的简单内核,需要debug工具,我们这里使用gdb来进行调试,由于虚拟机运行和本机是两个部分,所以使用 gdb 的远程调试技术,这里对 gdb 常见调试以及远程调试方式做一个总结。

远程调试

先对在调试操作系统内核时用到的命令做一个说明(这里省略了一部分makefile的内容):

为了方便调试,将debug所用到的命令做一个简单说明

  1. ……
  2. # -s 这个参数指的是启动时开启1234端口等待gdb连接
  3. # -S 是指是启动时不自动开始运行,等待调试器的执行命令
  4. debug: kernel.elf os-image.bin
  5. @echo
  6. 源码级别gdb远程调试(实现OS简单内核)的更多相关文章

      1. gdb 远程调试android进程 -转
      1. 什么是gdb 它是gnu组织开发的一个强大的unix程序调试工具,我们可以用它来调试Android上的C.C++代码. 它主要可以做4件事情: 随心所欲地启动你的程序. 设置断点,程序执行到断点处会停 ...

      1. Gdb远程调试Linux内核遇到的Bug
      1. 知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/gdb-bug 本博客同步在http://www.cn ...

      1. gdb 远程调试android进程
      1. 原文:http://blog.csdn.net/xinfuqizao/article/details/7955346?utm_source=tuicool 什么是gdb 它是gnu组织开发的一个强大的 ...

      1. ida GDB 远程调试
      1. 在看雪上回答的问题,有人问在WinDbg下断KiDebugRoutine或者KdEnterDebugger函数会引发蓝屏!因为是在调试Windows的内核调试引擎,我给出的解决办法是用不依赖Windo ...

      1. ubuntulinux内核源码阅读工具和调试方法总结
      1. http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是l ...

      1. JVM】深度分析JavaClassLoader机制(源码级别)
      1. 原文:深度分析JavaClassLoader机制(源码级别) 为了更好的理解类的加载机制,我们来深入研究一下ClassLoader和他的loadClass()方法. 源码分析 public abst ...

      1. Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结
      1. Atitit.常用语言的常用内部api 以及API兼容性对源码级别可移植的重要性 总结 1.1. 要兼容的重要语言api1 1.2. 常用基础api分类 core api1 1.3. 比较常用的扩展库 ...

      1. 搭建Spark源码研读和代码调试的开发环境
      1. 转载自https://github.com/linbojin/spark-notes/blob/master/ide-setup.md 搭建Spark源码研读和代码调试的开发环境 工欲善其事,必先利其 ...

      1. 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度 | 百篇博客分析OpenHarmony源码 | v9.07
      1. 百篇博客系列篇.本篇为: v09.xx 鸿蒙内核源码分析(调度故事篇) | 用故事说内核调度过程 | 51.c.h .o 前因后果相关篇为: v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 ...

    1. 随机推荐

        1. 「洛谷P1402」酒店之王 解题报告
        1. P1402 酒店之王 题目描述 XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的房间色调.阳光等,也有自己所爱的菜,但是该酒店只有p间房间,一天只 ...

        1. 小小知识点(四十一)-basedbased on的正确理解
        1. A-based B<等价于>B based on A<等价于>B on the basis of A,翻译为基于AB For example: (1) Radar-based ...

        1. C# 根据链接提取div内容
        1. 安装NuGet    HtmlAgilityPack var wc = new WebClient(); wc.Encoding = Encoding.GetEncoding("UTF-8 ...

        1. Go Web 编程之 模板(一)
        1. 概述 模板引擎是 Web 编程中必不可少的一个组件.模板能分离逻辑和数据,使得逻辑简洁清晰,并且模板可复用.引用第二篇文章<程序结构>一文中的图示,我们可以看到模板引擎在 Web 程序结构 ...

        1. 悄摸直播 —— JavaCV实现本机摄像头画面远程直播
        1. 目录 前言 需要的jar包和依赖 需要实现的模块(附带源码教程) 项目效果展示 前言 最近想用Java实现一个类似于远程直播的功能 像这样:(功能示意图) 需要的jar包和依赖 Maven依赖: &l ...

        1. PQSQL 按照时间进行分组
        1. 按照时间分组时一般是按照年.月.日进行分组,不会把时分秒也算进去,所以需要把时间戳提取出所需要的时间段,本质上是把时间戳格式化成对应形式的字符串,这个过程需要用to_char(timestamp, t ...

        1. Java final关键词
        1. final关键词的四种用法 * * final 关键字:最终的.不可改变的 * 1.可以用来修饰一个类 * 2.可以用来修饰一个方法 * 3.可以用来修饰一个局部变量 * 4.可以用来修饰一个成员变量 ...

        1. ubuntu16.04 docker kubernetes(k8s) istio 安装
        1. 版本: docker: 19.03.5 kubernetes: 1.17.0 istio: 1.4.3 步骤一:给ubuntu换源 https://www.cnblogs.com/lfri/p/106 ...

        1. vPlayer 模块Demo
        1. 本文出自APICloud官方论坛 vPlayer iOS封装了AVPlayer视频播放功能(支持音频播放).iOS 平台上支持的视频文件格式有:WMV,AVI,MKV,RMVB,RM,XVID,MP4 ...

        1. Broken Necklace 坏掉的项链 USACO 模拟(易错)
        1. 1004: 1.1.4Broken Necklace 坏掉的项链 时间限制: 1 Sec  内存限制: 128 MB提交: 11  解决: 9[提交] [状态] [讨论版] [命题人:外部导入] 题目 ...