当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 无法正常使用gdb,请看看我下面的实例
帖子发表于 : 2009-06-15 11:10 

注册: 2008-07-15 12:39
帖子: 37
送出感谢: 0 次
接收感谢: 0 次
首先我看的书是<GNU LINUX编程指南>,我现在看到了gbd调试这一章。
书上说的:用make debugme命令编译这个程序 。(程序在下面)
第一步是用该程序名debugme和内存转储文件core作为参数启动GDB

$gdb debugme core

我这样做了,可是终端显示:GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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"...
/home/ylj/exam/core: No such file or directory.

而书上的却很详细的列出了一些信息:
……"i486-linux-gnu"...
core was generated by'./debugme'.
program terminated with signal 11,segmentation fault.
reading symbols from /lib/libc,so.6...done
redding symbols from /lib/ld-linux.so.2...done.#0 index_to_the_moon(ary=0x7ffffcao) at debugme.c:24
24 ary[1]=1;
(gdb)

这个core要怎么来啊,执行(gdb)run 之后,为什么书上有提示程序错误的行号,我的终端却没有啊。

麻烦各位啦。下面是书上的代码:
#include <stdio.h>
#include <stdlib.h>
#define BIGNUM 5000
void index_to_the_moon(int ary[]);
int main(void)
{
int intary[100];
index_to_the_moon(intary);
exit(EXIT_SUCCESS);
}
void index_to_the_moon(int ary[])
{
int i ;
for(i=0;i<BIGNUM;++i)
ary[i]=i;
}

因为跟书上的不一样,所以很担心。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 无法正常使用gdb,请看看我下面的实例
帖子发表于 : 2009-06-19 21:33 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
输入l,能不能正常显示代码?
[url]http://wiki.ubuntu.org.cn/index.php?title=用GDB调试程序&variant=zh-cn[/url]
编译时加-g


_________________
代码:
] ls -ld //


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译