一、准备好内容vim test3.c  输入如下即可

#include <stdio.h>
 int func(int n)
 {
         int sum=0,i;
         for(i=0; i<n; i++)
         {
                 sum+=i;
         }
         return sum;
 }
 main()
 {
         int i;
         long result = 0;
         for(i=1; i<=100; i++)
         {
                 result += i;
         }
        printf("result[1-100] = %d /n", result );
        printf("result[1-250] = %d /n", func(250) );
 }

准备好的内容2 test4.c

#include<stdio.h>

int get_sum(int n)
{
  int sum = 0,i;
for(i=0;i<n;i++)
sum += i;
return sum;
}

int main()
{
 int i=100,result;
 result =get_sum(i);
 printf("1+2+3+...+%d=%d\n",i,result);
 return 0;

}

二、编译成

gcc test3.c -o test3

./test3 可以查看结果

gdb test3 出现错误

gdb list 的时候出现如下错误

No symbol table is loaded.  Use the "file" command.

---------------------------------

解决方案:

list命令后显示No symbol table is loaded. Use the "file" command.
原来编译用:gcc -o filename filename.c
解决办法,编译时加 一定要加-g:gcc -o filename -g filename.c

或者 比如gcc -g -o test3 test3.c 然后 gdb test3

又例子二:gcc -g test4.c -o test4

gdb list 1 从第一行开始。默认的一次只有10行,直接enter键下10行代码。list 1,17 列出1到17行的代码

gdb enter键  接下来的源码

gdb break 15 15行打断点

gdb r  开始运行

来到断点处

gdb n  下一步,下一步

gdb p i 打印某个变量

gdb watch i 查看某个变量

调试程序的时候,

break 6

run(不然 watch i==99 找不到i)

watch i==99 直接查看循环到99的情况

记得clear 6 与continue才能查看变量的值

print i

print sum

-----------

查看断点信息

info breakpoints

delete 编号。如删除第2个断点 delete 2

clear 6 删除第6行的断点

-----------

调试程序的时候,next和step的区别是。next 把整个函数当做一条语句处理,然后是下一行。

step是进入函数内部,然后执行函数内部一条一条语句。返回之后,继续执行下一条语句。

----------------------------------------------------------------------

一个经典的调试程序:

break 6

run

watch i==99

continue[运行到下一个断点或运行完] 运行到i==99的情况

然后按step进行调试程序即可。或next也可以。

参考网站:

http://blog.csdn.net/haoel/article/details/2879

最新文章

  1. CH模拟赛 还教室
  2. 实战 ASP.NET Web API
  3. 关于轻松安装LNMP和LAMP的编译环境
  4. 【转】CV_EXPORT定义的作用,lib及dll的区别
  5. BZOJ 1901 Zju2112 Dynamic Rankings ——树状数组套主席树
  6. Typescript的面向对象
  7. HTTP.sys漏洞验证及防护
  8. 安装nagios出现的两个错误记录
  9. Windows Phone开发工具初体验【转载】
  10. yzoi2223集合构造的详细解法
  11. 颜色空间RGB与HSV(HSL)的转换
  12. 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法
  13. mask_rcnn训练自己的数据集
  14. 常用API2 正则表达式
  15. Ocelot简易教程(三)之主要特性及路由详解
  16. SELinux简介(转载)
  17. mysql判断两个时间段是否有交集
  18. PHP伪原创同义词替代代码示意
  19. sqlserver 分区排序之partition
  20. linux -- ubuntu14.10安装gnome桌面环境和dock工具

热门文章

  1. eclipse 新建项目下后.metadata\.plugins的文件夹解释和如何保存自己的特定工程设置
  2. Android开发UI之补间动画-布局添加动画
  3. Webform——服务器控件与客户端控件
  4. 使用java远程调试技术监控代码运行
  5. 知识面 z
  6. Visual Studio 2015 下载地址
  7. 在windows下创建基于github的hexo静态博客
  8. Java笔记(三)&hellip;&hellip;基础语法
  9. 利用 SerialPort 控件实现 PC 串口通信
  10. Java 并发之线程安全