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.

[参考译文] 编译器:从*。out 文件中检测 C2000调试模型(--symdebug:coff 或--symdebug:dwarf)的简单方法?

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/881568/compiler-easy-way-to-detect-debugging-model-of-c2000---symdebug-coff-or---symdebug-dwarf-from-out-file

工具/软件:TI C/C++编译器

你好

我正在开发 C2000的实时监控系统、我需要同时支持传统调试模型(--symdebug:coff)和新调试模型(--symdebug:dwarf)。

输出格式固定为传统 COFF。

是否有任何快速轻松的方法来检测传统 COFF 文件中使用的调试模型? 像使用 ofd2000.exe 的某种方式一样?

提前感谢。

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

    COFF 调试格式多年来一直不受 C28x 编译器支持。  支持它的最后一组版本是15.12.x.LTS。  您应该认真考虑取消对 COFF 的支持。

    直接回答您的问题... 最好的方法是查看目标文件是否包含名称以.debug_开头的任何段。  例如、.debug_info.debug_line。  如果您看到任何此类段、则会使用 DWARF 调试。  如果您没有看到任何此类段、则会使用 COFF 调试。

    谢谢、此致、

    乔治

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

    你好、George

    感谢您的建议。

    我使用 ofd2000检查了 COFF 调试是否包含 DEBUG_INFO 部分。  

    但这些段看起来像是针对 TI 自己的代码(例如、args_main.c、_lock.c、 startup.c、 boot28.inc)、 而不是我自己的代码。  

    还有其他方法吗?

    谢谢、此致、Daewoong

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

    [引用 user="easydsp]I 使用 ofd2000检查了 COFF 调试是否包含 debug_info 部分。  [/报价]

    如果存在名为.debug_info 的段、则该文件包含 DWARF 调试格式的调试信息。

    [引用 user="easydsp">但这些段看起来像是用于 TI 自己的代码(例如、args_main.c、_lock.c、 startup.c、 boot28.inc)、 而不是我自己的代码。  [/报价]

    一个可能的解释... RTS 库使用 DWARF 调试信息构建、代码使用 COFF 调试信息构建。  工具可以处理该组合。

    [引用 user="easydsp"]是否还有其他方法?

    我不知道任何其他方法。

    谢谢、此致、

    乔治

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

    乔治

    感谢您的所有建议。 这对您有很大帮助。

    此致、Daewoong