gdb调试手册 一 gdb概述
一 gdb概述
gdb调试器的目的是让你了解其他的程序在执行的时候发生了什么或者其他程序崩溃时正在做什么
gdb主要能够在运行中做四类事情(包括这些事情中的一些附加的事情)来帮助你获取bugs
a 运行程序,指定任何影响程序行为的东西
b 让你的程序在指定的条件下停止
c 当你的程序停止的时候,检查发生了什么事情
d 改变程序中的内容,所以你能够尝试纠正一个bug带来的后果,并且继续了解另一个上述的情况
你能够用gdb调试c和c++编写的程序。了解更多的信息,可以看section 15.4 【supported language】,page 199.和 section 15.4.1【c和c++】 199页
部分支持d语言,更多的d信息 查看section15.4.2 d 205页
部分支持....
调试使用集合,子范围,文件变量或者内嵌函数的pascal程序并不是当前的工作。gdb不支持使用pascal语法的输入表达式,打印值,或者相似的特性。
gdb能够用来调试fortran编写的程序,即使它可能有必要参考带有尾随下划线的变量
gdb能够用来调试lbjective-c的程序,和使用apple/next或者gnu objective-c的运行库
免费的软件
gdb是受到gnu 通用公共许可证保护的免费软件。gpl给予你自由复制和修改一个许可的程序---但是每个人获得拷贝的人也可以自由的修改这个拷贝(这就意味着他们必须访问源代码),和自由的分发更多的拷贝。典型的软件公司用版权来限制你的免费权力。自由软件基金会用GPL协议来保持这些自由的权利。
基本上,通用公共许可证是说你又这个自由,而且你不能从其他人身上拿走这些自由。
免费的软件需要免费的文档
当今自由软件社区的最大缺陷并不是软件,而是我们缺少包含的那些自由软件的良好的免费文档。许多我门非常重要的程序都不带有免费的参考手册和免费的介绍文本。文档是一个软件包中的重要组成部分。当一个重要的免费软件包不带有免费的手册和一个免费的教程时,这是一个很大的差距,当今我门有很多这样的差距。
举例,例如perl 人们通常用的教程手册都是非免费的。怎么会这样呢?因为那些发布手册的作者发表了限制性的条款-不复制 不修改 源代码不可用--从自由软件世界中抠出了他们。
这中情况并不是第一次发生了,并且远远没有结束。很多时候我们都听到一个GNU用户急切的描述他正在写一个手册,他打算给社区做贡献,但是只是了解到他通过签署了一个让它不免费的出版合同而导致计划泡汤了。
自由软件等免费文档是一个自由的事情,而不是价格的问题。非免费手册的问题并不不在于出版商为印刷版收取费用-这本身就是好的。(自由软件基金会也会出售可打印的副本)。问题在于手册使用的限制。免费手册以源代码的形式提供,并且允许你复制和修改。而非免费的手册不允许。
免费手册的自由标准大致与自由软件相同。再分发必须被允许(包括一般的各种商业分发),以至于手册能够附加在每个程序的拷贝上,包括在线和纸质的。
修改技术内容的权限也是至关重要的。当人们修改软件,添加或者改变功能时,如果他们认真尽责也会修改手册-所以他们能够提供
精确的文档为了修改程序。一个手册,让你别无选择只能写一个新的手册来记录一个对我们的社区没什么意义的改变版本的程序。
修改方式的某些限制是可以接受的。例如,要求保留原作者的版权声明,分发条款,或者作者列表都是可以的。要求修改后的版本包含被修改的声明也是可以的。即使是不能删除或改变的整个部分也是可以接受的,只要特们呢处理非技术性的话题(比如这个)。这些限制是可以接受的,因为他们不妨碍社区正常使用手册。
然而,必须能够修改手册中所有的技术内容,并且通过所有正常的渠道将结果分发到所有通常的媒体中。否则,这些限制阻碍了手册的使用,他是非免费的,我们需要另一个手册来取代它。
请传播有关这个问题的话。我们社区继续失去手册到专有出版。如果我们传播自由软件需要免费的参考手册和教程,也许下一个想通过撰写文档提供贡献的人在太迟之前会认识到,只有免费的手册才能对自由软件社区作出贡献。
如果你正在编写文档,请坚持使用gnu自由文档许可或者其他的免费文档许可进行发布。请记住,这个决定需要您的批准--您不必让出版商去决定。如果你坚持的话,一些商业出版商会使用免费的许可证。但是他们不打算提供这个选项;这是由你来提出这个问题,并且坚定的说,这就是你想要的,如果同你打交道的出版商拒绝了你的要求,就请尝试其他的出版商,如果你并不确定提供的建议的许可是否免费,就写信给licensing@gnu.org。
你能够鼓励商业出版商通过购买更多的免费的,非版权限制的手册和教程来出售,特别是从出版商那里支付他们的写作或者重大改进的副本。同时,尽量避免购买非免费的文档。检查之前你购买的手册的分发条款,并坚持要求您的业务的任何人都必须尊重您的自由。检查这本书的历史,尝试奖励已经付款的给作者的发布者。
自由软件基金会维护的其他出版上发布的一个免费的文档列表。
1.a sample GDB session
你能够随时随地的阅读这个文档关于gdb的所有信息。然而,一些少量的命令足以开始使用这个调试器。这一章阐述这些命令。
在这个示例会话中,我们强调像这样的用户输入:输入,使其更容易从围绕在输出中挑选出来。
gdb调试手册 一 gdb概述的更多相关文章
- GDB调试手册[转]
Linux 包含了一个叫gdb 的GNU 调试程序.gdb 是一个用来调试C和C++程序的强力调试器.它使你能在程序运行时观察程序的内部结构和内存的使用情况.以下是 gdb 所提供的一些功能:它使你能 ...
- gdb调试相关
GDB调试及其调试脚本的使用返回脚本百事通一.GDB调试 1.1. GDB 概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等 ...
- Linux gcc/g++下GDB调试及其调试脚本的使用
GDB调试及其调试脚本的使用返回脚本百事通一.GDB调试 1.1. GDB 概述 GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB ...
- GDB 调试 ---转 比较全的东东
转自 程序人生:http://www.programlife.net/gdb-manual.html Linux 包含了一个叫gdb 的GNU 调试程序.gdb 是一个用来调试C和C++程序的强力调试 ...
- GDB调试基础使用方法
尽管目前使用的VS code可以使用插件一键构建和运行程序,但GDB作为调试利器,还是值得花时间去学习的. 概述 GDB(GNU Debugger) 是一个由GNU开源组织发布的.UNIX/LINUX ...
- Linux——【转】gcc编译与gdb调试简要步骤
原文:gcc编译与gdb调试简要步骤 一.Linux程序gcc编译步骤: Gcc编译过程主要的4个阶段: l 预处理阶段,完成宏定义和include文件展开等工作:(.i) l 根据编译参数进行不同程 ...
- gcc编译与gdb调试简要步骤
http://blog.chinaunix.net/uid-24103300-id-108248.html 一.Linux程序gcc编译步骤: Gcc编译过程主要的4个阶段: l 预处理阶段,完成宏定 ...
- 20145234黄斐《信息安全系统设计基础》GDB调试汇编堆栈过程分析
堆栈跟踪 首先编辑一个程序 用gcc编译,再使用gdb调试,发现gdb尚未下载 下载后重新运行gdb 设置断点:b+行号或者"main" 运行:r frame:打印出的信息:栈的层 ...
- gdb调试汇编堆栈分析
代码(src/05/gdb.c) int g(int x) { return x + 4; } int f(int x) { return g(x); } int main(void) { retur ...
随机推荐
- SQL基本语法总结
#创建数据库 DROP DATABASE IF EXISTS 数据库名; CREATE DATABASE 数据库名; #展示所有的数据库: SHOW DATABASES; #查看某个数据库的定义信息: ...
- LR脚本录制方式说明
1.LR脚本录制方式说明1)HTML-based script基于HTML的脚本从内存中读取并下载资源,较少的关联处理,可以加入图片检查,回放时需要解析返回的信息a-基于用户行为的方式 web_lin ...
- 使用jmeter测试数据库性能
出现如图所示的问题 解决办法: 1.下载驱动包,将mysql-connector-Java.jar分别放到Jmeter和Java安装目录的lib和ext目录下 链接:http://pan.baidu. ...
- HDU 2546 饭卡(带限制的01背包变形)
思路:有几个解法,如下 1)先拿出5块买最贵的菜,剩下的菜再进行01背包.如何证明正确性?设最贵的菜价e,次贵的菜价s,设减去5后的余额为x,会不会产生这样的情况,假设用5元买了e,余额最多能买到x- ...
- 51nod 1631 小鲨鱼在51nod小学
基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 鲨鱼巨巨2.0(以下简称小鲨鱼)以优异的成绩考入了51nod小学.并依靠算法方面的特长,在班里担任了许多职务. ...
- UVA 1623 Enther the Dragon 神龙喝水 (贪心)
贪心,每次遇到一个满水的湖要下暴雨的时候,就往前找之前最后一次满水之后的第一个没有下雨的且没有被用掉天day1. 因为如果不选这day1,那么之后的湖不一定能选上这一天.如果这一天后面还有没有下雨的天 ...
- JS编程规范指南
原文:github.com/ryanmcdermott/clean-code-javascript 说明:本文翻译自 github 上的一个项目,只取部分精华. 一.变量 用有意义且常用的单词命名 / ...
- 在DataGridView控件中显示下拉列表
实现效果: 知识运用: DataGridViewComboBoxColumn类 //通过该类可以创建下拉列表样式的列 实现代码: private void Form1_Load(object send ...
- 2018.2.12 PHP 如何读取一亿行的大文件
PHP 如何读取一亿行的大文件 我们可能在很多场景下需要用 PHP 读取大文件,之后进行处理,如果你没有相关的经验可以看下,希望能给你带来一些启发. 模拟场景 我们有一个 1亿 行,大小大概为 3G ...
- eclipse 中main()函数中的String[] args如何使用?通过String[] args验证账号密码的登录类?静态的主方法怎样才能调用非static的方法——通过生成对象?在类中制作一个方法——能够修改对象的属性值?
eclipse 中main()函数中的String[] args如何使用? 右击你的项目,选择run as中选择 run configuration,选择arguments总的program argu ...