zoukankan      html  css  js  c++  java
  • GDB错误:Cannot find bounds of current function

    http://blog.csdn.net/zoomdy/article/details/17249165
    mingdu.zheng <at> gmail <dot> com

    使用arm-eabi-gdb加载应用程序调试,运行后出现错误:

    $ arm-eabi-gdb httpd_sequential
    0x00008766 in ?? ()
    (gdb) n
    Cannot find bounds of current function

    看起来像是gdb找不到应用程序的调试符号,检查编译选项已经添加了调试相关选项。

    使用file命令检查加载的文件:

    $ file httpd_sequential
    httpd_sequential: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped

    编译应用程序的gcc与调试程序的gdb不匹配,arm-eabi-gdb需要的是arm-eabi-gcc编译生成的映像文件。gdb居然不检查ELF文件头给出错误报告。

    使用正确的gcc编译其编译后重新使用file命令检查文件类型:

    $ file httpd_sequential
    httpd_sequential: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped

    使用匹配的gcc编译的应用程序调试起来就不会有问题。

    在嵌入式系统开发过程通常需要交叉编译,必须小心处理所使用的编译器和调试器,特别是在使用Eclipse等集成开发环境的情况下要仔细核对开发环境使用的是那个编译器和调试器。默认情况下Eclipse调用的是本地编译器和调试器,而不是交叉编译器。

  • 相关阅读:
    python3监控网站状态
    暴力屏蔽80访问失败的用户
    python3爬取中国药学科学数据
    python3发邮件脚本
    OOP AOP
    lambda
    jni
    Gradle史上最详细解析
    supersocket 遇到的Failed to initialize 和 log4net用法
    在c#中利用keep-alive处理socket网络异常断开的方法
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3469160.html
Copyright © 2011-2022 走看看