是什么导致链接器不在.init节中插入Epilog?

2014年10月

使用gcc arm-none-eabi 4_8编译器,链接后我的二进制文件出现问题。没有错误,但是当我在调试器中启动它时,我永远不会到达main。跟踪它似乎链接器没有将结尾添加到crt的.init节中。这导致我的代码经过.init进入.rodata节,并在未定义的指令上遇到严重错误。

我很困惑,试图弄清楚为什么使用相同makefile的非常相似的代码没有这段代码时会出现此问题。我知道这是一个广泛的问题,但是为什么链接程序没有创建一个好的.init节是什么原因呢?

错误的.map:

*(.init)
.init          0x00001cec        0x4     /usr/local/.../gcc/linux/4_8-2013q4/bin/../lib/gcc/arm-none-eabi/4.8.3/armv6-m/crti.o
            0x00001cec                _init
*(.fini)
.fini          0x00001cf0        0x4 /usr/local/.../gcc/linux/4_8-2013q4/bin/../lib/gcc/arm-none-eabi/4.8.3/armv6-m/crti.o
            0x00001cf0                _fini

好的.map:

*(.init)
.init          0x00015c48        0x4 /usr/local/.../gcc/linux/4_6-2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/armv6-m/crti.o
            0x00015c48                _init
.init          0x00015c4c        0x8 /usr/local/.../gcc/linux/4_6-2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/armv6-m/crtn.o
*(.fini)
.fini          0x00015c54        0x4 /usr/local/.../gcc/linux/4_6-2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/armv6-m/crti.o
            0x00015c54                _fini
.fini          0x00015c58        0x8 /usr/local/.../gcc/linux/4_6-2012q4/bin/../lib/gcc/arm-none-eabi/4.6.2/armv6-m/crtn.o
2014年10月

原来问题是链接器命令文件已过期。

失踪:

           KEEP(*(.init))
           KEEP(*(.fini))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

gcc中链接器标志的正确顺序是什么?

来自分类Dev

是什么会导致Bootstrap在文档中插入额外的元素?

来自分类Dev

是什么原因导致某些网站嵌入在Google Chrome浏览器的iframe中?

来自分类Dev

是什么导致网页的某些行在我的浏览器中突出显示

来自分类Dev

在Google Chrome浏览器中启动任何网站链接的目的是什么

来自分类Dev

“隐藏链接:”在Azure资源管理器标记中是什么意思

来自分类Dev

ubuntu包中包含llvm链接器lld的名称是什么

来自分类Dev

交叉编译时,CMake的link.txt中的链接器命令应该是什么?

来自分类Dev

是什么导致iOS中的内存泄漏

来自分类Dev

是什么导致 cellForRowAtIndexPath 中的 outOfBounds 错误?

来自分类Dev

当我将笔记本电脑插入外接显示器时,是什么导致VLC以0退出?

来自分类Dev

GlobalGraphOperations导致NullPointerException不在Transaction中,但是为什么呢?

来自分类Dev

NSFetchedResultsController仅在控制器将要插入另一节时才将同一单元格插入两节中

来自分类Dev

Xcode中的库链接选项是什么?

来自分类Dev

href链接中的“ /./”是什么意思?

来自分类Dev

g ++中main()的链接是什么

来自分类Dev

Linux中的硬链接是什么?

来自分类Dev

/usr/bin 中的那些链接 '"[" & "[[" 是什么?

来自分类Dev

rPython安装失败,libpython不在链接器路径中

来自分类Dev

rPython安装失败,libpython不在链接器路径中

来自分类Dev

是什么导致500内部服务器错误,原因是在bot框架中命中了localhost:9000?

来自分类Dev

为什么cmake不在makefile中添加库链接命令?

来自分类Dev

在Python中是什么意思?(不在列表中)

来自分类Dev

iOS 5中的错误“链接器命令失败,退出代码1(使用-v查看调用)”是什么?

来自分类Dev

iOS 5中的错误“链接器命令失败,退出代码1(使用-v查看调用)”是什么?

来自分类Dev

在Oracle中向表和链接表中插入值的正确方法是什么?

来自分类Dev

导航链接中的选择器选择导致异常行为

来自分类Dev

链接函数和不在 javascript 中链接它们有什么区别?

来自分类Dev

是什么导致我的报告仅在ReportViewer组件中失败?

Related 相关文章

  1. 1

    gcc中链接器标志的正确顺序是什么?

  2. 2

    是什么会导致Bootstrap在文档中插入额外的元素?

  3. 3

    是什么原因导致某些网站嵌入在Google Chrome浏览器的iframe中?

  4. 4

    是什么导致网页的某些行在我的浏览器中突出显示

  5. 5

    在Google Chrome浏览器中启动任何网站链接的目的是什么

  6. 6

    “隐藏链接:”在Azure资源管理器标记中是什么意思

  7. 7

    ubuntu包中包含llvm链接器lld的名称是什么

  8. 8

    交叉编译时,CMake的link.txt中的链接器命令应该是什么?

  9. 9

    是什么导致iOS中的内存泄漏

  10. 10

    是什么导致 cellForRowAtIndexPath 中的 outOfBounds 错误?

  11. 11

    当我将笔记本电脑插入外接显示器时,是什么导致VLC以0退出?

  12. 12

    GlobalGraphOperations导致NullPointerException不在Transaction中,但是为什么呢?

  13. 13

    NSFetchedResultsController仅在控制器将要插入另一节时才将同一单元格插入两节中

  14. 14

    Xcode中的库链接选项是什么?

  15. 15

    href链接中的“ /./”是什么意思?

  16. 16

    g ++中main()的链接是什么

  17. 17

    Linux中的硬链接是什么?

  18. 18

    /usr/bin 中的那些链接 '"[" & "[[" 是什么?

  19. 19

    rPython安装失败,libpython不在链接器路径中

  20. 20

    rPython安装失败,libpython不在链接器路径中

  21. 21

    是什么导致500内部服务器错误,原因是在bot框架中命中了localhost:9000?

  22. 22

    为什么cmake不在makefile中添加库链接命令?

  23. 23

    在Python中是什么意思?(不在列表中)

  24. 24

    iOS 5中的错误“链接器命令失败,退出代码1(使用-v查看调用)”是什么?

  25. 25

    iOS 5中的错误“链接器命令失败,退出代码1(使用-v查看调用)”是什么?

  26. 26

    在Oracle中向表和链接表中插入值的正确方法是什么?

  27. 27

    导航链接中的选择器选择导致异常行为

  28. 28

    链接函数和不在 javascript 中链接它们有什么区别?

  29. 29

    是什么导致我的报告仅在ReportViewer组件中失败?

热门标签

归档