8.9. 编译器和开发工具


使用 guru 模式的 systemtap 脚本现在可以更快地编译

systemtap guru 模式存活度分析使用 dyninst 库来解析二进制文件。较新的内核通过 CONFIG_RETPOLINE=y 启用缓解代码,替换传统的 RET 指令,并跳转到到一个 thunk。因此,二进制分析需要很长时间,因为存活度分析需要检查跳到 thunk 所导致的控制流图的所有额外的边缘。

有了此更新,当内核代码使用 thunks 时,systemtap 会禁用存活度分析,因此使用 guru 模式的 systemtap 脚本可以更快地编译。

Bugzilla:2126805

eu-addr2line -C 现在可以正确地识别其他参数

在以前的版本中,当您在来自 elfutilseu-addr2line 命令中使用 -C 参数时,以下单个字符参数会消失。因此,eu-addr2line -Ci 命令的行为方式与 eu-addr2line -C 相同,而 eu-addr2line -iC 可以按预期正常工作。这个bug 已被修复,eu-addr2line -Ci 现在可以识别这两个参数。

Bugzilla:2236183

eu-addr2line -i 现在可以正确地处理使用 GCC 链接时间优化编译的代码

在以前的版本中,elfutils 中包含的 libdw 库中的 dwarf_getscopes 函数无法找到使用 GCC link-time 优化编译的函数的抽象原始定义。因此,当您在 eu-addr2line 命令中使用 -i 参数时,eu-addr2line 无法显示使用 gcc -flto 编译的代码的内联函数。有了此更新,libdw dwarf_getscopes 函数在内联范围的正确编译单元中查找,eu-addr2line -i 可以按预期正常工作。

Bugzilla:2162495

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.