当前位置:  技术问答>linux和unix

gdb查看嵌入式core文件的问题

    来源: 互联网  发布时间:2017-05-25

    本文导语:  Hi,板上的大牛们,本人目前由于一个偶发的bug(可能十多天才出一次)需要对嵌入式进程进行调试,因此用到了core dump功能,但是在使用过程中遇到了下列问题,网上查了好多方法还是无法解决,因此在版上请教一...

Hi,板上的大牛们,本人目前由于一个偶发的bug(可能十多天才出一次)需要对嵌入式进程进行调试,因此用到了core dump功能,但是在使用过程中遇到了下列问题,网上查了好多方法还是无法解决,因此在版上请教一下。

为了使用core文件,本人首先在主机linux做了测试(特意做了一个崩溃的进程例子),具体如下:
源代码:

#include 
int main(){
  printf("this is a testn");
  int i= 10/0;
  return 0;
}

在主机上进行编译:
gcc -g main.c -o main
运行结果:
this is a test
Floating point exception (core dumped)
执行gdb ./main core后:
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /home/wangwei/dm365/MyDoc/test/main...done.
[New Thread 4048]

warning: Can't read pathname for load map: Input/output error.
Reading symbols from /lib/tls/i686/cmov/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/tls/i686/cmov/libc.so.6
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Core was generated by `./main'.
Program terminated with signal 8, Arithmetic exception.
#0  0x0804840b in main () at main.c:4
4   int i= 10/0;

红色部分可以看出通过gdb将core文件正常读出,下面进行嵌入式版本测试,源代码同上。
交叉编译:
arm-none-linux-gnueabi-gcc -g main.c -o main
在嵌入式上运行:
root@dm365-evm:/home/test# ./main 
this is a test
Floating point exception (core dumped)
将./main和core拷贝到主机上,执行gdb ./main core查看
GNU gdb (GDB) 7.1-ubuntu
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
...
Reading symbols from /home/wangwei/dm365/MyDoc/test/main...done.

warning: Couldn't find general-purpose registers in core file.

warning: .dynamic section for "/lib/libgcc_s.so.1" is not at the expected address (wrong library or version mismatch?)

warning: .dynamic section for "/lib/libc.so.6" is not at the expected address (wrong library or version mismatch?)
Error while mapping shared library sections:
/lib/ld-linux.so.3: No such file or directory.
Reading symbols from /lib/libgcc_s.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /lib/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/libc.so.6
Symbol file not found for /lib/ld-linux.so.3

warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Core was generated by `./main'.

warning: Couldn't find general-purpose registers in core file.
#0  0x00000000 in ?? ()
如上红色部分,查看core文件失败;
根据上面的提示,我的理解是否是gdb需要用到嵌入式下的库文件?或者需要嵌入式版的gdb来查看?请大神们指点,万分感激。

|
gdb不对,如果是arm的需要arm-linux-gdb

|
要远程调试,google  远程调试

http://my.oschina.net/shelllife/blog/167914

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • gdb调试时的文件格式问题
  • 请问:用gdb进行调试时,core文件是怎么生成的啊?
  • 用gdb高度文件的问题
  • 用gdb同时调试两个文件
  • gdb 如何加载源文件调试
  • 程序崩溃,生成core 文件后 GDB挂载没用。。。
  • 使用gdb跟踪程序,如何在很多文件间跳转
  • gdb找不到源文件的问题
  • GDB如何调试 makefile的系列文件
  • GDB下列出文件清单
  • gdb调试,可执行文件和 源文件不在同一个目录怎么办?
  • core 文件大小为0 ,gdb不识别
  • gdb如何将变量结果输入到文件?
  • gdb使用list时,如何指定要查看的文件
  • 如何告诉GDB我的共享库文件在哪里
  • 怎样调试查找 .so文件中 的段错误? 用gdb查调用它的可执行程序,得不到任何结果啊
  • GDB为什么进不了另外一个文件的函数?
  • gdb怎么进入其他文件中的函数调试
  • 使用gdb调试软件,如何进入所调用函数的内部(在另一个源文件内)
  • gdb调试如何跟踪进入另外一个包含文件的内部函数进行调试?
  • 如何使用linux下gdb来调试python程序
  • 使用gcc gdb的大牛进来说说gdb的强大之处在哪。我刚学linux了,vim我确实体会到了其强大之处。而对gcc gdb,体会不到gdb这工具的强大之处。
  • 请教 make gdb-6.4 出现 make[4]: Entering directory `/tmp/gdb-6.4/gdb/doc'
  • 请教 make gdb-6.4 出现 make[4]: Entering directory `/tmp/gdb-6.4/gdb/doc' iis7站长之家
  • gdb 如何调试带命令行参数的程序 如 gdb a.out arg1,arg2
  • 请问gdb是不是只能调试gcc编译的程序,在unix下用其它编译器编译的程序是不是不一定能用gdb调试的?
  • gdb调试时命令行参数如何输入?比如main(int argc,char **argv)中,我要把一个filename作为argv[1]传入给gdb调试
  • linux gdb: 我在一台机器上编译的程序用GDB可以调试,把程序放到另外一台机器上调试,调试信息就没有了 这是什么原因呢?
  • 写调试器(像gdb)的一般思路是什么
  • gdb 使用问题请教
  • gdb的问题,请教,会者不难,快来拿分


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3