好文:gdb调试带参数程序(linux)

转载 2018年04月17日 17:57:32

gdb调试带参数程序

https://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要 
把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如: 

> cc -g hello.c -o hello 
> g++ -g hello.cpp -o hello 

如果没有-g,你将看不见程序的函数名、变量名,所代替的全是 运行时的内存地址。当你用 
-g把调试信息加入之后,并成功编译目标代码以后,让我们来看看如何用gdb来调试他。 

启动 GDB的方法有以下几种: 

1、gdb <program> 
program也就是你的执行文件,一般在当然目录下。 

2、gdb <program> core 
用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生 
的文件。 

3、gdb <program> <PID> 
如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gd 
b会自动attach上去,并调试他。program应该在 PATH环境变量中搜索得到。 



GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。我在下面只 
例举一些比较常用的参数: 

-symbols <file> 
-s <file> 
从指定文件中读取符号表。 

-se file 
从指定文件中读取符号表信息,并把他用在可执行文件中。 

-core <file> 
-c <file> 
调试时core dump的core文件。 

-directory <directory> 
-d <directory> 
加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。

当以gdb <program>方式启动gdb后,gdb会在PATH路径和当前目录中搜索<program>的源文件 
。 如要确认gdb是否读到源文件,可使用l或list命令,看看gdb是否能列出源代码。 

在gdb中,运行程序使用r或是run命令。 程序的运行,你有可能需要设置下面四方面的事。 

1、程序运行参数。 
set args 可指定运行时参数。(如:set args 10 20 30 40 50) 
show args 命令可以查看设置好的运行参数。 

2、 运行环境。 
path <dir> 可设定程序的运行路径。 
show paths 查看程序的运行路径。 
set environment varname [=value] 设置环境变量。如:set env USER=hchen 
show environment [varname] 查看环境变量。 

3、工作目录。 
cd <dir> 相当于shell的cd命令。 
pwd 显示当前的所在目录。 

4、程序的输入输出。 
info terminal 显示你程序用到的终端的模式。 
使用重定向控制程序输出。如:run > outfile 
tty命令可以指写输入输出的终端设备。如:tty /dev/ttyb

具体来说就是

例如一个程序名为prog 参数为 -l a -C abc
则,运行gcc/g++ -g  prog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc
回车后输入r即可开始运行

[Linux-4] gdb调试带参数的程序

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要  把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如:  ...
  • shishengshi
  • shishengshi
  • 2013-12-15 20:55:56
  • 3186

GDB 调试带参数程序的方法int main(int argc,char *argv[])

例如一个程序名为 mp3test参数为 /root/Media/test.mp3 则,运行gcc/g++ -g  mp3test.c -o mp3test 就可以用gdb调试程序mp3test...
  • zhujinghao09
  • zhujinghao09
  • 2013-01-03 16:29:43
  • 2323

Linux环境下使用GDB调试C程序

写这篇博客的目的是为了对gdb的常用命令做一个备忘,记录回顾下使用gdb的过程加深记忆。gdb是linux环境下一个非常著名的C语言调试工具,而且也非常的好用,对于解决C语言的各种bug非常拿手,对于...
  • growdane
  • growdane
  • 2016-03-20 17:03:11
  • 4506

gdb 启动带参数的程序

怎么用gdb 启动带参数的程序?比如下面 这样启东不行。答案是用set args 如下 就OK...
  • ddr77
  • ddr77
  • 2016-10-20 14:13:44
  • 636

visualgdb调试linux程序

  • 2016年07月20日 14:34
  • 9.72MB
  • 下载

linux使用gdb调试程序完全教程

转自 http://blog.csdn.net/gatieme 程序的调试过程主要有:单步执行,跳入函数,跳出函数,设置断点,设置观察点,查看变量。  本文将主要介绍linux下的强大调试工具是怎...
  • PZ0605
  • PZ0605
  • 2016-09-06 14:29:50
  • 6923

linux 用GDB调试C和C++程序

  • 2012年01月25日 21:31
  • 115KB
  • 下载

gdb调试带参数程序

http://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html 一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,...
  • sophie_stef
  • sophie_stef
  • 2013-11-18 15:19:47
  • 389

GDB调试带参数程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 [cpp] view plaincopy #include    #include   ...
  • hanghang121
  • hanghang121
  • 2015-12-16 17:28:59
  • 287

GDB调试带参数的程序

一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要  把调试信息加到可执行文件中。使用编译 器(cc/gcc/g++)的 -g 参数可以做到这一点。如:  ...
  • ccskyer
  • ccskyer
  • 2013-12-27 18:15:41
  • 675
收藏助手
不良信息举报
您举报文章:好文:gdb调试带参数程序(linux)
举报原因:
原因补充:

(最多只允许输入30个字)