请保留-> 【原文: https://blog.csdn.net/luobing4365 和 http://yiiyee.cn/blog/author/luobing/】
昨天有位名为“sam bing”的网友,提到用VS2015和EmulatorPkg调试UEFI程序。调试方法在之前的博客中讨论过,他是参照博客去操作的。
问题在于,他发现在工程中使用C标准库函数,也即StdLib后,在EmulatorPkg中无法编译通过,也就无法通过EmulatorPkg进行64位C标准库工程的调试了。
这个问题我也觉得奇怪,理论上不应该啊。
上午处理完项目相关的事情后,正好有点时间,就着手进行这个问题的分析了。
1 搭建开发环境
我日常都是在vUDK2018下进行开发,主要是因为它还支持Nt32Pkg,方便我随时使用模拟器进行调试。
为了分析这个问题,我得用一个相对较新的版本来测试。正好前段时间整理书稿的时候,搭建了一个开发环境,看了下版本:
robin@DESKTOP-083AISO:/mnt/c/srcEDKx/edk2$ git log
commit ca407c7246bf405da6d9b1b9d93e5e7f17b4b1f9 (HEAD, tag: edk2-stable202005)
Author: Ard Biesheuvel <ard.biesheuvel@arm.com>
Date: Wed May 20 13:44:48 2020 +0200
ArmPkg/CompilerIntrinsicsLib: provide atomics intrinsics
…..//后略
robin@DESKTOP-083AISO:/mnt/c/srcEDKx/edk2$ ls
AppPkg DynamicTablesPkg License.txt RobinPkg StdLibPrivateInternalFiles
ArmPkg EmbeddedPkg Maintainers.txt RobinPkg1 UefiCpuPkg
ArmPlatformPkg EmulatorPkg MdeModulePkg SecurityPkg UefiPayloadPkg
ArmVirtPkg FatPkg MdePkg ShellPkg UnitTestFrameworkPkg
BaseTools FmpDevicePkg NetworkPkg SignedCapsulePkg edksetup.bat
Build IntelFsp2Pkg OvmfPkg SourceLevelDebugPkg edksetup.sh
Conf IntelFsp2WrapperPkg PcAtChipsetPkg StandaloneMmPkg pip-requirements.txt
CryptoPkg License-History.txt ReadMe.rst StdLib
使用的是2020年的5月版,为了方便使用,我把StdLib、AppPkg等包,以及我自己的包RobinPkg一股脑都放在了edk2的同一目录下了。
继续阅读“UEFI开发探索92 – 调试使用了StdLib的64位程序”4,382 total views, 1 views today