gcc和gdb使用笔记】的更多相关文章

gcc: http://wiki.ubuntu.org.cn/Gcchowto gdb: http://wiki.ubuntu.org.cn/%E7%94%A8GDB%E8%B0%83%E8%AF%95%E7%A8%8B%E5%BA%8F…
用gdb调试程序笔记: 以段错误(Segmental fault)为例[转] 1.背景介绍2.程序中常见的bug分类3.程序调试器(如gdb)有什么用4.段错误(Segmental fault)介绍5.gdb调试入门 一.背景介绍这个笔记主要介绍开源的程序调试器(gdb)的入门知识,目的是使unix/linux环境的编程新手能够快速学会使用gdb调试程序的方法,同时也是对我使用gdb的一个经验总结.本文假设你能使用简单的unix/linux命令并能用gcc(GNU C Compiler, GNU…
参考资料:GDB调试精粹及使用实例 # 调试实例 #include <iostream> #include <cstring> using namespace std; ][]; int ax,ay; int bx,by; ]={,,-,}; ]={,,,-}; ; ; int n,m,k; void dfs(int d,int t,int curx,int cury) { if(t>_min) return ; || cury< || cury>n- || cu…
我的操作系统是CentOS6.4,安装源里自带了gcc4.4.0和gdb7.0,版本略老遂删除之重新安装. gcc 1.下载源码包,解压 //下载 wget http: //ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2 //解压 .tar.bz2 2.下载.升级依赖库 //升级系统文件 yum -y update //进入解压后的文件夹 cd //配置依赖库 ./contrib/download_prerequisites //返回上级目录 cd…
走进嵌入式开发的世界,企业级项目课程让你达到企业嵌入式应用开发要求.名师在线答疑,解决疑难.科学评测体系,系统评估学习.核心项目实........ 30 门课程 241小时12分钟 824 人学习 学习路径 01 C语言程序设计 01.1C语言基础 第1章 C语言概述 01.1.1.1序言 00:01:07 01.1.1.2程序.算法和流程图 00:11:40 01.1.1.3计算机语言的发展 00:08:21 01.1.1.4 C语言的起源.特点及C程序的基本结构 00:12:35 01.1.…
gcc一般调试格式: gcc -Wall -o  test   test.c // -wall  显示程序错误详细信息      gcc -v  // 显示gcc的版本 gcc -o{1,2,3} test  test.c // 1,2,3三个级别的优化,优化级别越高编译的时间越长 gcc -ggdb3 -Wall -o test  test.c // 运用gdb可以跟踪调试程序,运行这命令gdb告诉gcc,使用gdb扩展产生调试,其中3表示使用的第三级调试信息,程序员可以获得更多的信息. 如果…
gcc和gdb yum 在线安装软件,使用阿里云镜像站,OPSX 选择你安装的系统 点帮助 查看配置命令行 yum --list | grep gdb #查找要安装的软件 yum install -y gdb #不需要确认安装软件 gcc 1. 预处理 .i文件 -E 预处理 -o 指定输出文件名 例 : gcc -E hello.c -o hello.i 作用 : 干掉注释 宏替换 pragma 不替换 加入很多行号信息,用于报错和警告使用 2. 编译 .s 文件 -S 编译 例 : gcc…
目录 <> vim.gcc.gdb: gcc: gcc和g++是c/c++的linux系统集成的编译器,源文件的后缀应为 .C/.cpp/.c++/.cc等 编译器可以将C.C++等语言源程序.汇编程序编译.链接成可执行程序. gdb: 是 GNU 开发的一个Unix/Linux下强大的程序调试工具. gcc 基本格式:gcc [options] file1 file2... //若不加入参数,则按默认参数依次执行编译.汇编和链接操作,生成的可执行文件名为 a.out 常用参数:-E //只执…
第三周学习笔记 学习计时:共8小时 读书:1 代码:5 作业:1 博客:7 一.学习目标 熟悉Linux系统下的开发环境 熟悉vi的基本操作 熟悉gcc编译器的基本原理 熟练使用gcc编译器的常用选项 5 .熟练使用gdb调试技术 熟悉makefile基本原理及语法规范 掌握静态库和动态库的生成 二.学习资源 教材:第一章,第七章 <嵌入式Linux应用程序开发标准教程>第三章3.1-3.5 课程资料:https://www.shiyanlou.com/courses/413 实验二,课程邀请…
1  GCC = GNU C Compiler 1)  pre-processing (预处理) $ gcc -E -o hello.i hello.c // -E 预处理后停止 2)  compiling (编译) $ gcc -S -o hello.s hello.i // -S 编译后停止 3)  assembling (汇编) $ gcc -c hello.s -o hello.o // -c  汇编后停止; hello.o 是目标文件(二进制代码) 4)  linking (链接) $…
gcc编译器可以将C.C++等语言源程序.汇编程序编译.链接成可执行程序.gdb是 GNU 开发的一个Unix/Linux下强大的程序调试工具. linux下没有后缀名的概念.但 gcc 根据文件的后缀来区别输入文件的类别: .c C语言源代码文件.a 由目标文件构成的库文件.C..cc..cpp  C++源码文件.h 头文件.i 经过预处理之后的 C 语言文件.ii 经过预处理之后的 C++ 文件.o 编译后的目标文件.s 汇编源码文件.S 经过预编译的汇编源码文件 程序由C.C++源代码到可…
今天在用gdb调试C++程序的时候,想用"p i”命令打印出程序的一个局部变量i,却一直提示: No symbol "i" in current context. 我愣了下,想到有几种原因可能导致这种情况: 1.编译的时候没有加上-g选项,一直编译器没有在可执行程序中加入调试信息: 2.编译的时候加上了优化选项,使得编译器把某些变量优化掉了: 3.断点加的位置不对,变量超出作用域了. 我重新检查了程序以及编译命令,的确是没错的.于是我只能在程序中加了个全局变量gi,然后gdb…
一.vim vim修改一下配置文件后,如果你稍微会点vim的命令使用,那可比一般的编辑器好用啊,如果一点不会vim的命令使用,就跟一般编辑器一样使用. 打开etc/vim/vimrc文件 这里的引号是注释的意思. 去掉引号就可以了,我说明一下某些set的意思,其他的可以自己网上搜搜是啥意思,其实后面英文有注释的.如果自己的配置文件里面没有,可以手动添加. set mouse=a 在终端中可以使用鼠标 set ignorecase 查找时忽略大小写 set nu 自动添加行号 set ai 自动缩…
gcc 在linux系统中,默认是没有安装gcc编译器的,可以通过命令 rpm -q | grep gcc 来查看.安装命令为: yum -y install gcc 安装后,编写一个.c结尾的文件. gcc test.c 就会默认输出一个a.out的输出文件,这个输出文件就是可执行文件. 如果加上-o选项,则可以自定目标文件. gcc -o test test.c test就是它的可执行文件. 一般都默认加上-Wall 选项,可以自动提示一些出错警告的信息. gcc -Wall -o test…
1.GCC程序编译 Linux系统下的gcc(GNUCCompiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%. GCC编译器能将C.C++语言源程序.汇编程序编译.链接成可执行文件.在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件. 使用GCC编译程序时,编译过程可以被细分为四个阶段: v预处理(Pre-Processin…
GCC gcc是linux系统集成的编译器.在linux环境下编辑程序,首先需要克服的便是没有集成开发环境的一键式操作所带来的麻烦.这其中涉及命令行操作.编译选项的设定.文件依赖关系的书写(makefile)等问题.这里主要介绍的是关于gcc的常用命令行参数及其相应的作用.(若编译C++文件,则只需将下列命令的 gcc 换为 g++,源文件的后缀应为 .C/.cpp/.c++/.cc等) 基本格式:gcc [options] file1 file2... //若不加入参数,则按默认参数依次执行编…
Linux下的gdb和gcc默认输出的汇编都是AT&T格式的,但是它们都有方式来转换为Intel格式. -masm=[intel|att] 选择intel或AT&T的汇编语法 gcc -S -masm=intel test.c gdb则是设置环境变量 set disassembly-flavor intel…
使用yum安装gcc:yum install gcc即可.使用:which gcc 查看是否安装成功 使用yum安装g++:yum install gcc-c++ 即可.使用:which g++ 查看是否安装成功 gdb安装 方法一:使用yum安装:yum install gdb即可.使用:which gdb 查看是否安装成功…
实例学习gcc+gdb+make程序编译.链接.运行时头文件或动态链接库的查找 分四步: 预处理.编译.汇编.链接4steps:preprocess,compile,assemble,link ​…
1.gcc/g++编译过程: gcc/g++的编译格式: gcc [option][filename]... g++ [option][filename]... 1)processing:预处理过程,对文件中的文件包含,预编译语句进行处理,使用参数-E: 2)compilation:调用cc进行编译,将输入文件编译成.s的汇编文件,使用参数-s: 3)Assembly:调用as进行编译,将.S或.s文件编译成.o的目标文件,使用参数-c; 4)Linking:在生成目标文件生进行连接,使用参数-…
gcc: (1)gcc -O1 -S code.c   这里的-S可以的到code.c的汇编(只进行了预处理和编译这:两个阶段形成 了汇编代码code·s) (2)gcc -c code.c   这里参数-c可以得到code.c的目标代码(二进制文件),即进行了预处理,编译, 汇编形成了目标代码code.o (3)gcc -o pro code·c   这里参数-o可以生成最终的可执行文件(即经过了预处理,编译,汇编,链接 最终生成了可执行目标文件pro) gdb: (1)objdump -d…
1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. gcc -c source_file.c -c,只执行到编译,输出目标文件. 4. gcc (-E/S/c/) source_file.c -o output_filename -o, 指定输出文件名,可以配合以上三种标签使用.-o 参数可以被省略.这种情况下编译器将使用以下默认名称输出: -E:预…
摘要 在网上查看了很多篇关于Qt 4的安装方法,都是以前很久的帖子,所以就想按自己的方式重新总结一下,希望可以帮助到大家. Qt5的安装比较简单只需要下载一个文件qt-opensource-windows-x86-mingw491_opengl-5.4.2.exe, 这个文件集成了编译器(gcc.g++.gdb调试器).Qt库.Qtcreator集成开发环境 Qt 4的安装需要下载三个文件,分别是MinGW(编译器).qt-opensource-windows-x86-mingw482-4.8.…
GCC基本命令 gcc[选项][文件名] -E:仅执行编译预处理(.c->.i) -S:将c代码转换成汇编代码(.i->.s) -c:仅执行编译操作,不进行连接操作(.s->.o) -o:指定生成的输出文件 -I(大写i):指定头文件目录 -l:指定程序要来链接的库 -L:指定库文件所在的目录名 GDB基本命令 gcc -g:编译源程序 l:列出文件代码清单 display/f expr:设置自动显示的变量 p:显示指定变量的值 r:运行 c:继续运行至下一个断点 b:设断点(函数断点.…
GDB是UNIX及UNIX-like下的调试工具.GDB这个调试工具相比于VC.z的优点是具有修复网络断点以及恢复链接等功能. 一.功能 一般来说,GDB主要帮助你完成下面四个方面的功能: 1.启动你的程序,可以按照你的自定义的要求随心所欲的运行程序. 2.可让被调试的程序在你所指定的调置的断点处停住.(断点可以是条件表达式) 3.当程序被停住时,可以检查此时你的程序中所发生的事. 4.你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG. 二.使用语法 gdb  [ <progra…
相关编译选项: 1.-g 开启gdb 2.-o0,o2  o0表示不优化, 3. -funsigned-char -fdata-sections 会使compiler为每个function和data item分配独立的section,删掉未被使用的section 常用命令 1.l 列出代码 2.c 继续 3.r 跑起来 4.finish 结束当前函数 5.u +num 执行到多少行 6.b 打断点 b+if expr 条件断点 7.bt 查看函数栈,函数调用 8.info r/b... 查看寄存…
多文件程序的调试,例子: 文件结构: /demo Makefile /src demo.cpp util.cpp /include util.h 截图: ---------------------------------------------------------------------- ----------------------------------------------------------- 注意detach和kill的区别,仔细看文档的说明: detach When you…
其实,从很早就开始接触gdb程序,gdb调试程序伴我成长,现在对其用法记录以下: 当程序的运行结果和预期结果不一致,或者程序出现运行错误时,gdb就可以派上大用处了.调试的基本过程是:  -> 根据情况,分析现象 -> 根据直觉,假设原因 -> 根据经验,修改验证 -> | | <-   根据经验,修改验证 <-  根据直觉,假设原因 <- 根据情况,分析现象 <- 直到程序的结果和预期完全一致为止,就可以结束苦逼的程序调试了.调试器(如GDB)的目的是允许…
gdb调试: 源文件:test.cc >>g++ -g test.cc -o test.o  这里需要参数-g,因为接下来要使用gdb进行调试,生成目标文件test·o 因为需要将调试信息加入到可执行文件中. >>gdb test.o   ——启动gdb调试 >>回车键  ——重复上一次的命令 >>l或者list  ——显示源码 >>l -数字 ——从哪一行开始显示起 设置断点: >>break 23  ——在23行设置断点 >…
gdb gdb --args yourprogram 常用命令 r(run):从头开始运行 c(continue):继续运行 b(breakpoint) filepath:line or namespace::function(type):断点 s(step):运行当前行代码,会进入子函数 n(next):运行当前行代码,不会进入子函数 bt(backtrace):查看当前函数栈 until [line]:运行直到推出循环体,或者到指定行号 d(delete) n:删除第n个断点 disable…