DevC++里gdb使用(转)

DevC++4.9.9.2中,按 F8 开始调试。提示信息为:工程没有调试信息,您想打开工程的调试选项并重新生成吗?选择是后,再按F8,仍旧是这个信息。什么原因呢?

按照帮助,Frequently Asked Questions (FAQ)中提示
How do i enable Debugging mode ?

Go to Compiler Options and click on the Compiler sheet. In the Linker section, put projectes?to ‘Generate debugging information‘. Do a ‘Rebuild All‘ and you should be able to debug now.
tools->compiler option->settings->linker里设置为yes后,Generate debugging information,并且Rebuild All了。还是不行,但是,经试验发现,系统提供的例子程序却能调试,没办法,只好比较一下编译信息,发现,自己建立的工程在编译的时候,没有加-g选项,在gdb的帮助里说到,要想使用gdb调试,必须加上这个参数(因为Dev C++使用的是gdb调试器),在仔细查找,发现在工程文件夹里有一个Makefile.win的文件,打开一个,是一个Makefile文件,因此,就得从刚才compiler option选项里配置,经过试验,有四处需要变化:

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。
重新编译,就能调试了。

时间: 2024-08-13 21:11:35

DevC++里gdb使用(转)的相关文章

养成良好的写代码习惯

看了上一节hello world一篇,相信你对C语言语法结构有了一定感触,其实基本上每个C语言程序代码都是那样的声明,那样的框架,而要填充的内容就是框架内的内容.会了hello world,其他的也就可以融会贯通,只不过是学习新的语句新的函数,新的算法的问题.所以在你写代码写的很6之前,我要讲一节习惯的问题.就是写代码的习惯. 为什么要养成好的写代码的习惯?因为你的代码并不只是要求能运行,还要美观易读.有可读性的代码才是有价值的代码,如果你写完代码,别人根本看不懂,甚至你自己都看不懂,那么这个代

常用排序算法之快速排序

快速排序最坏情况运行时间为O(n2),但实际中通常都是用于排序的最佳的实用选择,因为其平均性能相当好:期望的运行时间为O(nlgn),且O(nlgn)记号中隐含的常数因子很小. 快速排序是一种就地排序.同时,是一种不稳定的排序.本文内容主要参照算法导论. 快速排序主要利用了分治的思想.一般分为三步进行: 分解:数组A[p..r]被划分为两个子数组A[p..q-1]和A[q+1..r],其中A[p..q-1]的元素都小于等于A[q],A[q+1..r]都大于等于A[q]. 解决:通过递归调用快速排

__declspec(dllexport)

__declspec(dllexport) (2010-06-17 10:04:28) 转载▼ 标签: __declspec dllexport 导出 it 分类: C 先看代码:以下是在dev-c++里建立自已的dll时的dll.h里面的代码,这里面有一个:_declspec(dllexport) #ifndef _DLL_H_#define _DLL_H_//防重复定义 #if BUILDING_DLL# define DLLIMPORT __declspec (dllexport)#els

gdb 和 addr2line 调试 crash(包含如何调试so里面的crash)

嵌入式编程中会遇到各种crash的问题. 对于这样的问题,有两种调试方法: addr2line  和 gdb. 第一章   先讲解下gcc 编译加不加 -g 对程序的影响, 还有strip. //1.1.cpp #include <iostream> using namespace std; bool IsUnique() {         int k = 0, m = 0;         k = k/m;      //这里会crash         return true; } in

gdb系列之四 在GDB里运行程序

在你开始在GDB里运行程序前,你需要在编译的时候产生调试信息. 你可以在你选定的环境里带参数(如果有的话)的启动GDB.如果你是在本地调试,你可以重定向输入输出,调试一个已运行 的进程,或者结束一个进程. 4.1 为调试而编译 为了有效的调试程序,你需要在编译的时候产生调试信息.调试信息存储在目标文件里:调试信息描述了数据和函数的类型, 源代码和可执行代码的对应关系. 编译时指定编译器的'-g'选项可以产生调试信息. 在编译给你的客户发布的程序时,可以用'-O'选项指定编译器进行优化.然而,许多

Mac里配置Eclipse + GDB

在Eclipse里调试c程序, 出现: "Error while launching command: gdb -version".需要让Eclipse知道Eclipse具体在什么地方,配置方法是: "Debug configuration"-->"Debugger"-->"GDB debugger"里的"gdb"改成gdb的绝对路径:"/usr/local/bin/gdb"

Go语言gdb调试踩坑

整个是一个docker环境 docker版本: 1.12.1,镜像是我自己做的基于ubuntu:14.04.05. 容器操作系统版本: Ubuntu 14.04.5 LTS go版本: 1.6.3 在gdb中执行run命令出错! 错误输出: warning:Error disabling address space randomization: Operation not permitted 环境:docker 解决办法: warning:Error disabling address spac

VELT-0.1.5开发: gdb串口调试内核时信息丢失的问题

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 本文仅适用于vs2013 + velt-0.1.5 VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可

opensips/kamailio gdb代码调试方法详解

 要对kamailio/opensips进行单步调试,就需要先了解其代码的结构及运行方式,kamailio/opensips使用Reactor和Proactor结合的IO网络模型,使用主进程负责监听网络,当有连接产生或首包到达时,就通过pipe将文件描述符发送给worker进程,worker进程就会负责此连接的数据取读.业务处理.数据发送等事情,然后再次等待此socket事件.当我们想要调试一段代码时,就先确认这段代码是运行在什么类型的进程中,通常用于处理SIP逻辑的代码都是在worker进