| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1632 人关注过本帖
标题:gdb调试问题
只看楼主 加入收藏
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
gdb调试问题
用vi写好的程序8.25.5.cpp用mingw编译不成功,于是用gdb调试,再cmd中键入gdb 8.25.5.cpp 前面出来一些版本信息,后来有一句E:\cpp/8.25.5.cpp:not in executable format:File format not recognized
请问是怎么回事 谢了
搜索更多相关主题的帖子: gdb 调试 
2010-08-25 11:11
weble
Rank: 2
等 级:论坛游民
帖 子:59
专家分:83
注 册:2009-4-12
收藏
得分:0 
编译不成功你是怎么调试的

路漫漫其修远兮,吾将上下而求索
2010-08-25 23:51
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
编译不成功还调试什么?有語法错误要想办法改好,能成功编译之后才能调试。
gcb 是用于调试可执行文件的,比如 windows 下的 exe。为了方便调试,你可以用 g++ -g ***.cpp 的命令,-g 是指在编译时嵌入源码用于调试。当然一定要能成功编译才行,如果有 error 那就要先改語法错误。

你进了 gdb 可能也不会用。先告诉你几个常用命令:q 是退出 gdb,h 是帮助。
start 是开始,开始之后可以用 l (L,不是 1)列出代码。n 是下一条语句(如果涉及函数调用,不进入函数),s 进入函数。

先不介绍太多吧,反正不知道干什么的时候,知道输入 q 回车是退出就行了。它要问你退不退,你就回答 y。
2010-08-26 00:08
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
收藏
得分:0 
回复 3楼 pangding
谢谢指点,还想问一下,既然一个程序已经可以运行了,调试又是起什么作用的?另外还有个小问题,今天对照书上的一个程序进行编译时,出现如下提示今This application has requested the  
Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.想问下怎么
回事?
#include<iostream>
#include<string>
using std::cout;using std::endl;using std::cin;using std::string;
int main()
{ // say what standard-library name we use
    string name;
  cout<<"Please enter your name: ";
  cin>>name;
  
  const string greeting="hello, "+greeting+" !";
  const int pad=2;
  const int rows=pad*2+3;
  const string::size_type cols=greeting.size()+pad*2+2;
  //write a blank line to sepeater input and output
  cout<<endl;
  //  invariant:we have written r rows so far
  for(int r=0;r!=rows;++r){
    string::size_type c=0;
    while(c!=cols){
    if(r==pad+1&&c==pad+1){
        cout<<greeting;
        c+=greeting.size();
    }else{
        if(r==0||r==rows-1||c==0||c==cols-1)
            cout<< "*";
        else
            cout<< " ";
        ++c;
    }
    }
 }
 return 0;
}
2010-08-31 15:17
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
调试为的不是纠正语法错误。
编过一段程序都应该知道,写完程序之后,修正语法错误往往是最容易的一件事。但头痛的是,为什么语法无误的程序却不能按预期完成任务。调试是为了解决这个问题的。
 
还有你写的这个程序不知道为什么会出那个错误。是不是你的编译器没有正确安装呀?你用的是什么?
2010-08-31 18:28
charderkk
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2010-8-24
收藏
得分:0 
回复 5楼 pangding
哦 程序安装好了 后来仔细找了找发现是有一句话写错了const string greeting="hello, "+greeting+" !"; 后面的greeting应该是name才行
2010-09-04 15:49
vfdff
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:2172
专家分:425
注 册:2005-7-15
收藏
得分:0 
回复 4楼 charderkk
程序已经可以运行,执行功能不一定正确呀

~~~~~~~~~~~~~~~好好学习~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2010-09-05 03:29
快速回复:gdb调试问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017365 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved