1 使用WinDbg搭建edk2 DEBUG环境

相信所有开发UEFI的小伙伴在刚接触UEFI的时候肯定都是一头雾水,等到稍微入门了一点之后,当我们想开发一个新功能的时候碰到了一些奇奇怪怪的错误想要去调试,笔者在刚接触的时候组里的师傅都是使用串口打印来调试,这种调试方法是单向的,相当于串口打印出你想看到的某些值,无法实现对寄存器的修改。直到笔者看到了一个关于edk2即时调试的视频(该视频为公司内部视频,笔者不能对外提供),此处笔者可以提供该项目搭建环境所需要的Tools以及源代码(经实验可以正常使用)。下面就开始edk2即时调试环境的搭建介绍。

1.1 环境准备

  • 笔者所有环境以及软件安装都是在Windows10下完成,但是Tools中也提供了相关Linux软件,如需请自行测试
  • dbg_x86_6.11.1.404
  • iasl-win-20201217(编译工具,安装好需设置环境变量)
  • nasm-2.15.05-installer-x64(编译工具,安装好需设置环境变量)
  • putty-0.74-installer(笔者未用到此工具,如有需要请自行安装)
  • qemu-0.13.0-windows(qemu虚拟机,模拟Shell环境,无需安装,解压出来即可
  • UDK_Debugger_Tool_v1_5_Win
  • vspd(虚拟串口工具)
  • edk2源码
  • 编译工具Visual Studio 2015(视频中讲解为2017,笔者实测2015也能够完成编译)

1.2 安装注意事项

  • 所有软件的安装路径建议默认位置,如C盘更改可自行调整

  • 在安装UDK_Debugger_Tool_v1_5_Win前,请先安装dbg_x86_6.11.1.404,因为安装UDK_Debugger_Tool_v1_5_Win时会检测是否安装dbg_x86_6.11.1.404

  • 安装好vspd后,打开add默认COM1和COM2,下图为add之后,可以看到多了两个COM1和COM2串口

1.3 编译edk2

  1. 进入到edk2根目录

  2. edksetup.bat
    
  3. 进入conf文件夹找到target.txt修改自己对应的编译器,如果为2017可不修改直接进行下一步

  4. edksetup.bat rebuild
    
  5. build -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 -D SOURCE_DEBUG_ENABLE
    
  6. 上面步骤一切顺利的话就会在Build目录下生成相应的FD文件

  • 编译完成之后将edk2\Build\Ovmf3264\DEBUG_VS2015x86\X64下HelloWorld.efi拷贝至qemu解压后根目录中

1.4 使用DEBUG TOOL

当以上步骤都做好了之后。我们就可以开始调试环境的搭建了

  • 接着进入QEMU的根目录,使用CMD执行如下命令

    qemu-system-x86_64.exe -bios d:\Download\Chrome\Edk2SourceDebugDemo-main\edk2\Build\Ovmf3264\DEBUG_VS2015x86\FV\OVMF.fd -L . -hda fat:rw:. -serial COM2
    
  • 随后进入到tool界面全速运行,Go(F5),运行一会后可以暂停[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d9wt1ApV-1663574172975)(Debug Agent/image-20220919154607650.png)]

  • 打开command串口在最下面输入q

  • 随后在qemu启动的界面即可看到shell界面
  • 输入fs0:,再输入HelloWorld.efi,即可看到不会有打印信息,会卡住,因为此处的HelloWorld文件插入了一个软件断点
  • 随后进入tool界面,单步运行几步,即可看到如下界面

以上就是笔者搭建edk2调试环境的过程,因为是首次接触该工具,很多功能笔者还不会使用,还需要学习一些进阶使用方法,如果看到此文章的小伙伴有非常熟悉此软件的,可以和笔者交流一下,谢谢

使用WinDbg搭建edk2 DEBUG环境相关推荐

  1. 【转】VMWare+WinDbg搭建(驱动)调试环境

    [转]VMWare+WinDbg搭建(驱动)调试环境 今天搭建了一个"VMWare+Windbg的虚拟机双机内核调试环境",第一次感受到了"符号和源码调试"的强 ...

  2. linux下安装EDK2开发环境,EDK2开发环境搭建 - osc_y9wmeuxa的个人空间 - OSCHINA - 中文开源技术交流社区...

    EDK2开发环境搭建 来源 https://blog.csdn.net/rikeyone/article/details/80759724 EDK2全称为"uEFI Development ...

  3. 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建

    基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 文章目录 基于QEMU-aarch64学习UEFI(EDK2)-1环境搭建 一.环境搭建 1.虚拟机Ubuntu系统安装 2.dock ...

  4. macos 环境下搭建 windbg 虚拟机双机调试环境

    「求职」阿哈哈哈广告来了,博主本人,23届落魄web安全,在线求职,本科学历有一段大厂实习,有缺人的大佬么或者有内推的大佬给个机会吧,求求啦,可以微信联系我给您简历:ocean888-_- 文章底下有 ...

  5. Windows10搭建EDK2环境

    文章目录 一.注意事项 二.EDK2环境搭建过程 1.配置软件环境 2. 配置环境变量 3. 运行 4.部分报错 2021/10/26 尝试再次在搭建EDK2环境 2021/11/1 再次尝试搭建完整 ...

  6. Ubuntu搭建EDK2环境

    文章目录 一.注意事项 二.EDK2环境搭建过程 1.换源 2.搭建EDK2环境 3. 编译运行 有问题请留言或mail至nosilver@protonmail.com 一.注意事项 由于此文档为配置 ...

  7. UEFI开发历程1—edk2开发环境的搭建以及在虚拟机QEMU运行OVMF固件

    一.开发工具准备(下面是开发环境搭建部分) 1.下载Visual Studio,打开Visual Studio Installer,选择Comunity版本,工作负载的选择如图1-1所示,安装. 图1 ...

  8. VTS环境搭建以及debug vts_ltp_test_arm

    VTS环境搭建以及debug 安装环境 1.安装VTS 2.配置Java JDK debug 1.运行测试相关环境 2.解决 VTS_syscalls.chdir01_32bit#syscalls.c ...

  9. UEFI开发探索28 – 用Windbg建立UEFI调试环境

    (请保留-> 作者: 罗冰   https://blog.csdn.net/luobing4365) 最近的翻译计划和博客计划严重滞后.一方面是因为有两个案子在推进,业余时间也被占用:另外一方面 ...

最新文章

  1. 小脚本,统计一个目录下满足特定条件文件的代码行数
  2. jQuery学习总结之基础知识----持续更新中
  3. VS2010中水晶报表插件下载安装方法
  4. 李宏毅深度学习——第一天
  5. LeetCode 383. Ransom Note
  6. java imageicon 路径_java awt ImageIcon icon 相对路径设置
  7. 设计干货栅格系统素材 | UI设计师应用好帮手
  8. java session失效之后跳转,session失效后如何实现页面不跳转到主页而是跳转到session失效时的页面...
  9. Netapp存储控制器接管
  10. Jsoup进阶之获取指定数据
  11. exawear能运行java_VirSCAN.org-多引擎在线病毒扫描网 v1.02,当前支持 47 款杀毒引擎...
  12. 宏程序编程实例,简单易懂
  13. NEXMO 发送国际短信,遇到的问题
  14. Android之---揭秘微信不死的进程
  15. 网易我的世界服务器存档在哪个文件夹,网易版我的世界如何删除玩家存档
  16. JVM调优理论与实践最佳结合
  17. asp.net通用的sql插入与修改语句,一劳永逸
  18. 尚学堂JAVA基础学习笔记_2/2
  19. H3C WLAN基本配置
  20. Excel根据关键词批量查找提取

热门文章

  1. 怎么把半角引号替换成全角_巧妙批量互换全角与半角双引号
  2. 手把手教你开发红外遥控器
  3. 2018,灵魂无处安放的一年
  4. 计算机科学与技术哪个方向好就业前景,【计算机科学与技术】专业就业前景以及未来的就业方向...
  5. 使用 patchrom 移植 MIUI
  6. android 4.4 java版本_Android4.0-4.4 加入实体按键振动支持的方法(java + smali版本号)
  7. 咳咳,好久没发博客了,我还活着。(ps:又要进入鸽王模式了)
  8. SCI投稿:MDPI旗下期刊Mathematics投稿经历
  9. PVE最小资源安装Jellyfin(LXC容器使用turnkey-mediaserver模板)
  10. 程序员爬取 5000+ 口红商品数据,差点比女朋友更懂口红?