C基础 - GDB调式工具

安装

brew install gdb

一、单步执行和跟踪函数调用

/* main.c -- 学习gdb调试工具 */#include <stdio.h>

int add_range(int low, int high)
{
    int i, sum;
    for (i = low; i <= high; i++)
        sum = sum + i;
    return sum;
}

int main(void)
{
    int result[100];
    result[0] = add_range(1, 10);
    result[1] = add_range(1, 100);
    printf("result[0]=%d\nresult[1]=%d\n", result[0], result[1]);
    return 0;
}

第一步:使用-g生成目标文件

gcc -g main.c -o main

?  ch02 gdb file nogood.c

GNU gdb (GDB) 8.0.1

Copyright (C) 2017 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 "x86_64-apple-darwin16.7.0".

Type "show configuration" for configuration details.

For bug reporting instructions, please see:

<http://www.gnu.org/software/gdb/bugs/>.

Find the GDB manual and other documentation resources online at:

<http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".

Type "apropos word" to search for commands related to "word"...

"/usr/bin/file": not in executable format: File format not recognized

"/Users/david/Desktop/c-primer-plus-source-code/ch02/nogood.c" is not a core dump: File format not recognized

(gdb)

时间: 2024-10-29 19:06:01

C基础 - GDB调式工具的相关文章

GDB调式工具的简单调试步骤

程序编译: gcc xx.c -o xx -g //一定要加-g 开始调式: gdb xx //进入调式界面 l:显示文件,默认10行main函数 l+函数名 //显示函数 b:插入断点 b + 行号(main函数) b + 文件名:行号 b + 函数名 r:运行程序 n:单步运行,不进入自定义函数 s:单步运行,进入自定义函数 c:继续执行到下一个断点,没有断点执行到程序结束 p:查看变量 p + i //查看变量i p + 表达式 //查看表达式的值

001编程基础----GDB程序调试

一.GDB是GNU发布的程序调试工具.有三方面功能: 1.启动被调试程序. 2.让被调试程序在指定位置停住. 3.当程序被停住时,可以检查程序状态(如变量值). 二.GDB调试步骤: 1.编译生成可执行文件 gcc -g hell.c -o hello 2.启动GDB gdb hello 3.在main函数处设置断点 break main(或b main) 4.运行程序 run 5.单步 next 6.继续运行 continue(或c) 7.退出GDB   quit 三.GDB命令的常用操作 l

java基础-Eclipse开发工具介绍

java基础-Eclipse开发工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 所谓工欲善其事必先利其器,即将身为一名Java开发工程师怎么能没有一款好使的IDE呢?今天就为大家介绍一款功能强大的IDE,即Eclipse.它是Java集成开发工具.它可以极大地提升我们的开发效率.可以自动编译,检查错误.在公司中,很多Java工程师都将Eclise作为首选开发工具,而且它还是免费开源的,尽管eclipse有些功能没有,但是你开源下载一些插件让其支持,这足以说明它的扩展性

入门基础之——基本工具

看韦老师操作各种软件倒是流畅,但是自己要是并不清楚某些软件的功能,就需要补充自己的知识盲点.例如玩单片机,我们都知道串口调试助手,可以在win上和单片机通信,接发数据,要是只知道串口调试助手,不知道它怎么用,那就不可能学得好.下面先补充基本工具的知识点. SecureCRT SecureCRT是VanDyke Software的一个商业SSH.Telnet客户端和虚拟终端软件.SecureCRT最初是一个Windows下的产品,最近VanDyke增加了Mac OS X和Linux下的版本. Se

黑马程序员——Java基础---集合框架工具类

黑马程序员——Java基础<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------ 一.概述 Java为操作Set.List和Map提供了一系列工具类,主要有Collections和Arrays.这两个工具类的特点:类中的方法都是静态的,不需要创建对象,直接使用类名调用即可.Collections:是集合对象

linux基础--包管理工具yum详解

rpm常用命令 安装 -ivh:安装rpm包 --nodeps:忽略依赖关系强制安装 --replacepkg:无论软件包是否已被安装,都强行安装软件包 卸载 -e:卸载rpm包 --nodeps:忽略依赖关系强制卸载 升级 -Uvh:升级软件包--Update -Fvh:只有安装在系统上的包才会升级 --nodeps:忽略依赖关系升级 查询 -q:查看安装包名称 -qa:查看是否安装指定rpm包 -qf:查找指定文件属于哪个RPM软件包 -qi:查看安装包的详细信息 -qc:查看安装包的配置文

OpenStack基础知识-单元测试工具介绍

针对以前学的内容的一个简单整理 1.单元测试工具介绍 unittest: 是 Python 的标准库,提供了最基本的单元测试功能,包括 单元测试运行器(简称runner) 和 单元测试框架.项目的单元测试代码的测试类可以继承 unittest.TestCase 类,那么这个类就能够被 runner 发现并且执行.同时, unittest.TestCase 这个类还定义了 setUp() , tearDown() , setUpClass() 和 tearDownClass() 方法,是用来运行

【HTML5与CSS3基础】开发者工具之Console

现在的浏览器往往都会有一个开发者工具用于帮助开发者构建更高效的网站. 开发者工具有一个Console窗口(控制台窗口)用于输出一些调试信息,有了这个工具就总算是可以告别使用alert来调试JavaScript了.而且Console的功能远远不只是输出一下现在运行到哪了这样的简单的信息,它还可以识别不同种类的信息并且提供对应代码的超链接. 开发者工具是通过把一个名为console的对象加载到全局名称空间中,使用这个对象就可以将应用程序内部的工作信息输出到Console控制台.下面是7个consol

WordPress基础:小工具的使用

通过外观->小工具对挂件区域的内容进行调整 比如添加个日历模块 保存后前台就会显示出来 如果不需要,反过来,把模块拖到左边就可以了.