实时搜索: gdb如何使用

gdb如何使用

349条评论 1741人喜欢 5947次阅读 618人点赞
如下代码:
#include <stdio.h>
int main()
{
struct a{
int a;
char b;
double c;
}a;
printf("%d\n", sizeof(struct a));
return 0;

}
使用gdb调试程序的时候,如果想看一下三个成员a,b,c的地址会类似下面的显示:
(gdb) p &(a.a)
$3 = (int *) 0xbffff3a0
(gdb) p &...

如何在sublime 中使用gdb: GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,基于命令行界面。 在Windows下如果想使用GDB,可以先下载安装一个MiniGW,这个工具包含GCC编译器和GDB调试器,再配合一个Notepad++或者Sublime Text(Sublime这款编辑器不是免费的,可以...

如何使用GDB调试C++工程: 简单来说,有两种方式,一种是源码debug,即分析源码来找出bug位置,一般使用printf()打印出程序执行每一步的信息,一种是可执行文件debug,需要使用调试器来进行。 1、源码debug 类似于下面的源码,主要通过程序执行时输出的信息,来定位bug出...

如何用gdb调试erlang运行期:

注意要点

有时候bug很难复现、或者环境搭建起来比较困难,所以在出现bug的时候可以使用gdb的attach功能调试正在运行的GCC编译出来的程序,注意编译选项要加-g,否则没有符号表。

调试步骤

编译时候带-g选项。

运行程序。

ps找到进程号。

启动gdb,使用attach选项,这时gdb会停止在程序的某处。

按照GDB调试方法调试。当程序退出之后,依然可以使用run命令重启程序。

第一步  编译一个死循环程序。 

第二步  让gdb连接到正在执行的进程上去。

第三步 在gdb中重启程序。

qtcreator怎么调用gdb: 您

项目project配置debug模式Make: mingw32-make.exe debug -w in

首先要设置断点Debug(要Debug模式)

程序运行断点处用F10或F11类调试

Qt-SDKdebug功能用MingW编译器编译态debug版本debug

问题继续追问谢

使用gdb查看变量内存: 你可以使用:
1. (gdb) p /x &(a.b) //十六进制显示
2. (gdb) x &(a.b) //x命令用于查看某特定地址的内存

欢迎访问: http://www.programath.com ——因为程序和数学,我们相聚在这里

使用gdb调试时,当程序需要获取输入,如何输入多行?:

不是很懂你的意思,getchar()不是输入字符吗?用gets可以规避enter的问题,但是好像不太能满足你的需求,我用_getch() 加一点小把戏,稍微有点像,但是有的字符显示不出来,你可以看一下.

用gets就比较完美,就是不知道,你的循环怎么写的,第二个是gets的例子

/*
 * complier: vs2015
 * time: 2015/8/16
 * -  - - from - - -Skip */
#include<stdio.h>
#include<conio.h>
int main(void) {
    char ch;
    while ((ch = _getch()) != EOF) {
        printf("%c",ch);
        if (ch == 13)
        printf("%c",10);
    }
    return 0;
}
//////////////////////////////////////////////////
#include<stdio.h>
int main(void) {
char ch[50];
while (NULL!=gets_s(ch)) {
;
}
return 0;
}

开发板上如何使用GDB: 调试时,应用程序在嵌入式目标系统上运行,而gdb调试在Host端。 一、编译安装gdb+gdbserver 首先下载gdb源码,我下载的是gdb-6.6.tar.gz。$tar xvzf gdb-6.6.tar.gz$mkdir mygdb$cd mygdb必须要在你想要安装的目录下执行下边的命令。$../gdb-6.6/configure --target=arm-linux \ --prefix=/home/a/mygdb参数说明:target是你的目标板,我的是arm-linux,prefix是你要安装的目标文件夹。$make$make install然后建立gdbserver。$mkdir mygdbserver$cd mygdbserver$chmod +x ../gdb-6.6/gdb/gdbserver/configure$CC=arm-linux-gcc ../gdb-6.6/gdb/gdbserver/configure \--host=arm-linux --prefix=/home/a/mygdbserver$make$make install$arm-linux-strip gdbserver去除调试信息。不去好像不行,我的就不行,去了就ok了。复制到你的开发板上就可以了。 二、调试步骤1、交叉编译,带参数-g加入调试信息。假设要调试的程序为test.c。#arm-linux-gcc -g test.c -o test2、在Target Board开启gdbserver#gdbserver <host-ip>:2345 testgdbserver开始监听2345端口(你也可以设其他的值),然后启动test,你会看到“Process test created:pid=88”3、回到Host端#arm-linux-gdb test最后一行显示:This GDB was configured as “--host=i686-pc-linux-gnu,--target=arm-linux”...说明此gdb在X86的Host上运行,但是调试目标是ARM代码。(gdb)target remote <target-board-ip>:2345注意:你的端口号必须与gdbserver开启的端口号一致,这样才能进行通信。建立链接后,就可以进行调试了。调试在Host端,跟gdb调试方法相同。注意的是要用“c”来执行命令,不能用“r”。

linux系统怎么使用gdb调试?输出断点位置的变量值该如何输出: gcc -g -o test test.c
gdb test
l(list)
b(break) main
r(run)
p(printf) 变量名

  • i am go是谁唱的

    frankly speaking是什么意思: 实话实说诚实的说跟to be honest 一个意思。 adv. 坦白地说;打开天窗说亮话 [例句]Frankly speaking you don 't understand.坦白说你不理解我的. ...

    469条评论 6177人喜欢 4784次阅读 686人点赞
  • gradle文件在哪

    Online Judge 上的趣味题 计算A+B C语言 求教怎样不用double就可以确保后台答案不会超过2^64: 都是整数,用long long int 就行 ...

    690条评论 5303人喜欢 2987次阅读 722人点赞
  • 2013年12月上海车牌限价多少

    1.下面加点的字全部正确的一项是( ) A、奇崛 qú 金罍léi 对峙 zhì 忍俊不禁 jīn: 你得把加点的字标识出来,才能帮助你啊,同学! ...

    621条评论 3554人喜欢 1408次阅读 664人点赞
  • 12月19日是什么星座

    .Tony entered the speaking什么意思?: 托尼进入讨论 ...

    361条评论 1874人喜欢 1516次阅读 767人点赞
  • exo圣诞节mv女主是谁

    为什么我的电脑总出现蓝屏 0*0000000A: 分析:上述代码通常是由有问题的驱动程序或系统服务造成的. 解决方法: 1. 若新安装某硬件的新驱动, 或安装了某软件, 而它又在系统服务中添加了相应项目(比如:杀毒软件、CPU降温软件、防火墙软件等), 在重启或使用...

    427条评论 3906人喜欢 3413次阅读 933人点赞
  • 五怎么拼写

    properly speaking是什么意思: properly speaking正确地说双语例句英英释义1However, properly speaking, he lived in the Rue Plumet, and he had arranged hi...

    983条评论 4849人喜欢 3801次阅读 359人点赞