This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] F29H850TU:使用 C29x Clang 编译器以 DWARF 格式为变量生成调试信息的指南

Guru**** 2322270 points
Other Parts Discussed in Thread: C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1514570/f29h850tu-guidance-to-generate-debug-information-in-dwarf-format-for-variables-using-c29x-clang-compiler

器件型号:F29H850TU
主题:C2000WARE 中讨论的其他器件

工具/软件:

您好专家、  

我正在寻找有关使用 C29x Clang 编译器从输出文件中为变量生成 DWARF 格式的调试信息的指导。 是否有人可以就实现此目标的正确方法或流程提出建议?

任何帮助或建议都将非常感谢!

此致
Deep Ganatra

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    TI C29x 编译器中可用的调试选项在此处列出: https://software-dl.ti.com/codegen/docs/c29clang/compiler_tools_user_guide/compiler_manual/using_compiler/compiler_options/debug_options.html

    Ajay

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Ajay 的帮助。

    我 知道 选择 Dwarf 调试信息的版本的标志  

    我正在寻找生成 DWARF 调试信息文件的分步流程。 我也有兴趣知道如何在这个过程中使用众所周知的 DWARF 解析器。 我打开 DWARF 信息的输出格式、无论是文本、JSON 还是其他适当的格式。

    此致
    深度

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    带有--dwarf_display 和--xml 选项的 c29ofd 实用程序可能是您要找的?  https://software-dl.ti.com/codegen/docs/c29clang/compiler_tools_user_guide/compiler_manual/other_object_utilities/util_ofd.html

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Ajay 的帮助。   

    我还有一些问题。 我想知道您是否知道 TI 用户通常喜欢或使用的任何 DWARF 解析器、尤其是当他们正在使用德州仪器(TI)的材料时?

    我试图弄清楚是否有像首选解析器或者已知可以使用 TI 工具顺利运行的任何解析器。

    此致  
    深度

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好专家、  

    还有、 是否有任何人有关于 TI C29x clang 编译器何时支持 DWARF 版本4和 DWARF 版本5的信息?

    此致
    Deep Ganatra

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您想与 DWARF 配合使用、下面是几个基于开源 LLVM 的工具、这些工具是很好的起点:

    https://www.llvm.org/docs/CommandGuide/llvm-dwarfdump.html

    https://llvm.org/docs/CommandGuide/llvm-dwarfutil.html 

    我们目前没有计划支持 DWARF 版本4或5。 从这些较新的版本中是否有您感兴趣的任何特定功能?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Anil 的答复,

    我真的很感谢您的意见。

    我只是假设 TI CLANG 编译器和 TI C28编译器中的 DWARF 版本4相同 、 如果我没记错、在 C28编译器上、我们会将调试信息作为默认的 DWARF 版本4获得。

    因此,我只想知道,如果我必须更新我的脚本,以与两个 DWARF 版本, DWARF 版本3和版本4一起使用。 当时我正在处理 C28和 C29控制器工程、 并且 显然能够在解析器中处理这两者。  


    此致
    Deep Ganatra

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在 C28编译器上、我们将调试信息作为默认的 DWARF 版本4

    正确、前提是您使用了该选项 -- abi=eabi 并使用较新的 EABI 进行构建。  在过去几年中、C2000Ware 仅支持 EABI。  因此、您很可能也使用 EABI。

    我只是假设 TI CLANG 编译器和 TI C28编译器中的 DWARF 版本4相同

    您似乎认为 Dwarf (任何版本)是一个非常严格的规范、对于相同的输入、不同的编译器必须发出几乎相同的输出。  这是一个错误的假设。  最好将 Dwarf 规范视为与编程语言类似。  在 C 语言中、您可以用多少种不同的方式来编写排序函数?  当然、有许多不同的方式。  同样、Dwarf 可以通过多种不同的方式表示相同的调试信息。  C29编译器的 Dwarf 生成部分和 C28编译器的实现方式有很大不同。  第一种是开源协议、第二种是 TI 专有协议。  虽然有些东西看起来是一样的,但很确定其他东西看起来是不同的。  没有人试图让他们都是一样的。

    如果我必须更新我的脚本才能与 DWARF 版本、DWARF 版本3和版本4一起使用

    可以开始了。

    我正在开发使用 C28和 C29控制器的项目

    很可能您可以编写单个脚本(或一组脚本)来处理两个编译器的 Dwarf 输出。  但请预计、此脚本需要处理比您当前预期更广泛的可能输入。

    谢谢。此致、

    -乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您发送编修 。