0

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

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

有谁知道为什么会这样?

4

2 回答 2

0

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

于 2013-06-27T23:48:23.137 回答
0

为什么会这样

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

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

于 2013-06-22T20:42:47.133 回答