免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 20771 | 回复: 11
打印 上一主题 下一主题

[C] gdb调试core文件的问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-11 15:37 |只看该作者 |倒序浏览
以下是core文件返回的信息:


  1. GNU gdb 6.1.1 [FreeBSD]
  2. Copyright 2004 Free Software Foundation, Inc.
  3. GDB is free software, covered by the GNU General Public License, and you are
  4. welcome to change it and/or distribute copies of it under certain conditions.
  5. Type "show copying" to see the conditions.
  6. There is absolutely no warranty for GDB.  Type "show warranty" for details.
  7. This GDB was configured as "i386-marcel-freebsd".
  8. Core was generated by `a.fcgi'.
  9. Program terminated with signal 6, Aborted.
  10. #0  0x284f7ecb in ?? ()

  11. (gdb) up
  12. #1  0x284f7e68 in ?? ()
  13. (gdb) up
  14. #2  0x0000e447 in ?? ()
  15. (gdb) up
  16. #3  0x00000006 in ?? ()

复制代码



输入up命令后还有一堆这样的提示。

还有为什么 in 后面显示乱码了呢? 是编码的问题吗?

论坛徽章:
0
2 [报告]
发表于 2008-07-11 15:54 |只看该作者
自己顶下!

论坛徽章:
0
3 [报告]
发表于 2008-07-11 16:30 |只看该作者
原帖由 veking 于 2008-7-11 15:37 发表
以下是core文件返回的信息:


GNU gdb 6.1.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it a ...


不是乱码,是gdb无法根据指令地址找到对应的符号。
检查一下是否正确加载了符号表文件。

论坛徽章:
0
4 [报告]
发表于 2008-07-11 16:30 |只看该作者
还没有up到你的代码里面呢

论坛徽章:
0
5 [报告]
发表于 2008-07-11 16:53 |只看该作者

  1. gdb ./a.fcgi a.fcgi.core
  2. GNU gdb 6.1.1 [FreeBSD]
  3. Copyright 2004 Free Software Foundation, Inc.
  4. GDB is free software, covered by the GNU General Public License, and you are
  5. welcome to change it and/or distribute copies of it under certain conditions.
  6. Type "show copying" to see the conditions.
  7. There is absolutely no warranty for GDB.  Type "show warranty" for details.
  8. This GDB was configured as "i386-marcel-freebsd"...

  9. warning: core file may not match specified executable file.
  10. Core was generated by `a.fcgi'.
  11. Program terminated with signal 6, Aborted.
  12. Reading symbols from /usr/local/lib/libglib-2.0.so.0...done.
  13. Loaded symbols for /usr/local/lib/libglib-2.0.so.0
  14. Reading symbols from /usr/local/lib/libiconv.so.3...done.
  15. Loaded symbols for /usr/local/lib/libiconv.so.3
  16. Reading symbols from /usr/local/lib/mysql/libmysqlclient.so.15...done.
  17. Loaded symbols for /usr/local/lib/mysql/libmysqlclient.so.15
  18. Reading symbols from /lib/libz.so.3...done.
  19. Loaded symbols for /lib/libz.so.3
  20. Reading symbols from /lib/libcrypt.so.3...done.
  21. Loaded symbols for /lib/libcrypt.so.3
  22. Reading symbols from /lib/libm.so.4...done.
  23. Loaded symbols for /lib/libm.so.4
  24. Reading symbols from /usr/local/lib/libfcgi.so.0...done.
  25. Loaded symbols for /usr/local/lib/libfcgi.so.0
  26. Reading symbols from /usr/local/lib/libmemcache.so.4...done.
  27. Loaded symbols for /usr/local/lib/libmemcache.so.4
  28. Reading symbols from /usr/local/lib/libmemcached.so.2...done.
  29. Loaded symbols for /usr/local/lib/libmemcached.so.2
  30. Reading symbols from /lib/libc.so.6...done.
  31. Loaded symbols for /lib/libc.so.6
  32. Reading symbols from /usr/local/lib/libintl.so.8...done.
  33. Loaded symbols for /usr/local/lib/libintl.so.8
  34. Reading symbols from /usr/local/lib/libpcre.so.0...done.
  35. Loaded symbols for /usr/local/lib/libpcre.so.0
  36. Reading symbols from /libexec/ld-elf.so.1...done.
  37. Loaded symbols for /libexec/ld-elf.so.1
  38. #0  0x28380ecb in kill () from /lib/libc.so.6
  39. (gdb) where
  40. #0  0x28380ecb in kill () from /lib/libc.so.6
  41. #1  0x28380e68 in raise () from /lib/libc.so.6
  42. #2  0x2837fb78 in abort () from /lib/libc.so.6
  43. #3  0x2831cfdb in _UTF8_init () from /lib/libc.so.6
  44. #4  0xbfbfef7a in ?? ()
  45. #5  0x28386dd3 in sys_nsig () from /lib/libc.so.6
  46. #6  0x28386cd3 in sys_nsig () from /lib/libc.so.6
  47. #7  0x28386ce7 in sys_nsig () from /lib/libc.so.6
  48. #8  0x0806d000 in ?? ()
  49. #9  0x28391d80 in ?? () from /lib/libc.so.6
  50. #10 0xbfbfec28 in ?? ()
  51. #11 0x2831d3e7 in _UTF8_init () from /lib/libc.so.6
  52. #12 0xbfbfed3c in ?? ()
  53. #13 0x00000100 in ?? ()
  54. #14 0xbfbfed28 in ?? ()
  55. #15 0x2831d74a in _UTF8_init () from /lib/libc.so.6
  56. #16 0x0806d000 in ?? ()
  57. #17 0x0804fa59 in ?? ()
  58. #18 0xbfbfed4c in ?? ()
  59. #19 0xbfbfed60 in ?? ()
  60. #20 0x08053000 in ?? ()
  61. #21 0x00001000 in ?? ()
  62. #22 0x00000000 in ?? ()
  63. #23 0x28391d80 in ?? () from /lib/libc.so.6
  64. #24 0x283a7a24 in _nsyyin () from /lib/libc.so.6
  65. #25 0x0806c000 in ?? ()
  66. #26 0xbfbfecd8 in ?? ()
  67. #27 0x2831dd69 in _UTF8_init () from /lib/libc.so.6
  68. #28 0x283a7a24 in _nsyyin () from /lib/libc.so.6
  69. #29 0x00000000 in ?? ()
  70. #30 0xbfbfece8 in ?? ()
  71. #31 0x2831e143 in _UTF8_init () from /lib/libc.so.6
  72. ---Type <return> to continue, or q <return> to quit---
  73. #32 0x37350000 in ?? ()
  74. #33 0x00000000 in ?? ()
  75. #34 0x00000000 in ?? ()
  76. #35 0x28382c16 in __swrite () from /lib/libc.so.6
  77. Previous frame inner to this frame (corrupt stack?)
  78. (gdb)

复制代码

论坛徽章:
0
6 [报告]
发表于 2008-07-11 16:53 |只看该作者
还是没看懂错误在那里。。。

论坛徽章:
0
7 [报告]
发表于 2008-07-11 16:57 |只看该作者
用gdb看到这种现象一般就是内存越界了

论坛徽章:
0
8 [报告]
发表于 2008-07-11 17:08 |只看该作者
原帖由 sunlan 于 2008-7-11 16:57 发表
用gdb看到这种现象一般就是内存越界了


那如何快速定位到错误呢? 代码很多。。。。

论坛徽章:
0
9 [报告]
发表于 2008-07-11 17:41 |只看该作者
#3  0x2831cfdb in _UTF8_init () from /lib/libc.so.6


这个调用是什么作用?

论坛徽章:
0
10 [报告]
发表于 2008-07-11 18:20 |只看该作者

回复 #1 veking 的帖子

哇,和我遇到的何其相似 http://bbs.chinaunix.net/viewthread.php?tid=1055357

几乎可以肯定是指针问题, 但没法直接定位, 需要仔细检查可能出错的地方
这种情况gdb是没有多大用处的,还是printf和log好使
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP