【问题标题】:Codewarrior debugger not showing C source after compiling some code and data into a new ELF sectionCodewarrior 调试器在将一些代码和数据编译到新的 ELF 部分后不显示 C 源代码
【发布时间】:2013-06-28 07:48:23
【问题描述】:

在我们的项目中,我们正在构建一个 ELF 文件和一个部分链接文件 (PLF),该文件将转换为专有格式并在 ELF 加载后加载到内存中。我们使用 Codewarrior 运行和调试,一直运行良好(调试时始终可以使用 C++ 源代码单步执行)。

我最近做了一个更改,将一些代码和数据编译到 PLF 文件中的不同部分(.init,以前是空的)。现在,在调试时,大多数文件仅在汇编程序中可用。当我重新构建时,不再使用 .init,我们可以再次单步执行 C++ 源代码。

有人知道为什么会这样吗?

【问题讨论】:

    标签: debugging elf sections codewarrior


    【解决方案1】:

    为什么会这样

    一个原因可能是codewarrior 不希望在.init 部分中找到代码。

    您不太可能在这里得到好的答案。试试 codewarrior 支持论坛。

    【讨论】:

    • codewarrior 论坛是个好主意。我才刚刚开始使用它,所以我是新手。但我在尝试了几个小时后解决了这个问题。 :)
    【解决方案2】:

    我通过使用链接器命令文件 (.lcf) 切换节的顺序使 .init 节在 .text 之后排在第二位,从而实现了这项工作。我想正如 Employed Russian 所暗示的那样,CodeWarrior 对在 .init 中包含代码感到惊讶并且胡言乱语。更改部分的顺序似乎没有不良影响,现在调试再次按预期工作。

    【讨论】:

      猜你喜欢
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-31
      相关资源
      最近更新 更多