
在 gcc编译源代码时指定-g选项可以产生带有调试信息的目标代码,gcc可以为多个不同平台上帝不同调试器提供调试信息,默认gcc产生的调试信息是为 gdb使用的,可以使用-gformat 指定要生成的调试信息的格式以提供给其他平台的其他调试器使用.常用的格式有
-ggdb:生成gdb专 用的调试信息,使用最适合的格式(DWARF 2,stabs等)会有一些gdb专用的扩展,可能造成其他调试器无法运行.
-gstabs:使用 stabs格式,不包含gdb扩展,stabs常用于BSD系统的DBX调试器.
-gcoff:产生COFF格式的调试信息,常用于System V下的SDB调试器
-gxcoff:产生XCOFF格式的调试信息,用于IBM的RS/6000下的DBX调试器
-gdwarf- 2:产生DWARF version2 的格式的调试信息,常用于IRIXX6上的DBX调试器.GCC会使用DWARF version3的一些特性.
可 以指定调试信息的等级:在指定的调试格式后面加上等级:
如: -ggdb2 等,0代表不产生调试信息.在使用-gdwarf-2时因为最早的格式为-gdwarf2会造成混乱,所以要额外使用一个-glevel来指定调试信息的 等级,其他格式选项也可以另外指定等级.
gcc可以使用-p选项指定生成信息以供porf使用.
1、在“工具”-》编译选项-》"Add following commands when calling complier"下面的编辑框里加上:-g3
2、在下面的"Add these commands to the linker command line" 下的编辑框上加上:-g3
3、转到programs页,把gcc行修改为:gcc.exe -D__DEBUG__
4、把g++行修改为g++.exe -D__DEBUG__ ,点击ok。
重新编译,就能调试了。
Dev C++调试程序时左侧没有显示信息
win10, Dev C++ 5.11 IDE.
之前调试程序时,用鼠标移到变量,不用点击就会在左侧的 ”调试“ 栏里自动显示其值。
但是现在:如图,
调试程序时,用鼠标移到相关代码变量时,左侧的 “调试” 栏里没有自动生成相应的信息。
为什么?
一看就是VC之类的IDE用多了的……一个程序从代码到执行总共是这么几步:
编辑——预处理——编译——汇编——链接——执行
一个完整的集成开发环境(IDE)会把整个链条整合起来,
让开发人员可以在一个程序中,自动化的全部完成
但这并不是必须的
上面这个步骤可以笼统的分为三大版块:
编辑——(预处理、编译、汇编、链接)——执行
执行就不说了,双击运行都可以~
关键是前面,如果你使用的是一个纯粹的编译器(非IDE,比如GCC),那么他往往不含有第一个版块:编辑界面
也就是说代码编写需要你另找其他程序去完成
只要能编辑文本的程序都可以:NotePad、UE、NotePad++……还有*nix下比较热门的VI和Emacs(也有Window版)都可以,完全看你的习惯。
编辑好代码之后,再在命令行中调用gcc将源代码输出为可执行文件。
举个最简单的例子,忽略中间那些预处理什么的步骤,直接一步到位的生成可执行文件
比如你的源代码为"C:\test.c",你想生成一个名为test.exe的可执行文件在D:根目录下:
gcc C:\test.c -o D:\test.exe
当然,也可以用相对路径,就不多说了
如果想在编译的时候加入调试信息方便调试,则加入一个参数即可:
gcc -g C:\test.c -o D:\test.exe
如果要编译的是C++文件,则把gcc换成g++即可,其他一切不变
如果调试,则使用gdb命令,如:
gdb D:\test.exe
如此便进入调试界面——当然,也是命令行形式的。具体的调试命令你自己上网找教程吧,不是一两句话可以说清楚的。
如果确实是用惯了VC之类的IDE,可以使用Eclipse或NetBeans
都是开源软件,去官网下载即可。安装好之后配置C/C++的编译环境即可,具体步骤网上一搜一大把,不再赘述
==============================================
看了一下你发的图,才发现你用的是CygWin
这东西应该属於Win平台下的一种Unix虚拟环境,并不算gcc
Win下用gcc的话,还是装个MinGW吧
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)