GDB运行程序
程序运行阶段可能会出现很多问题,导致程序不能正常运行,例如,程序运行需要动态传入参数或者是程序在调试阶段路径发生改变等等,这些都是常见的问题。如何解决这类问题,可以通过设置程序的属性。
设置程序的属性
1.程序的运行参数。
set args 可指定运行时参数。(如:set args 10 20 30 40 50)
show args 命令可以查看设置好的运行参数。
path<dir>可设定程序的运行路径。
show paths 查看程序的运行路径。
set environment varname[=value]设置环境变量。如:set env USER=hchen
show environment[varname]查看环境变量
cd <dir> 相当于 shell 的 cd 命令。
pwd 显示当前的工作目录。
info terminal 显示程序用到的终端的模式
使用重定向空值程序输出。如 run>outfile
tty 命令可以指定写输入输出的终端设备。如 tty /dev/ttyb
程序源代码展示如下:
#include <stdio.h>
int main(int argc,char *argv[])
{
If(argc < 3)
return -1;
char *arg1 = argv[1];
char *arg2 = argv[2];
printf(“arg1 = %s\n”,arg1);
printf(“arg2 = %s\n”,arg2);
return 0;
}
gcc -g test.c -o test
在 shell 命令行中为程序传递参数:./test hello
显示运行的结果为:
Hello
World
(gdb) run boy girl //使用命令传递参数,运行程序使用 run 命令
Starting program: /home/wjc/hsxy/lianxi/10/test/a.out boy girl
arg1 = boy
arg2 = girl
[Inferior 1 (process 2910) exited normally]
(gdb) run //默认会使用上一次 run 命令的参数
Starting program: /home/wjc/hsxy/lianxi/10/test/a.out boy girl
arg1 = boy
arg2 = girl
[Inferior 1 (process 2917) exited normally]
(gdb) set args //置空参数列表
(gdb) show args
Argument list to give program being debugged when it is started is "".
(gdb) set args 1 2 //设置参数为1 2
(gdb) show args //显示参数
Argument list to give program being debugged when it is started is "1 2".
(gdb) show environment PATH //显示已经设置的所有的环境变量
PATH=/home/wjc/s5p6818sdk_lzy1/Linux/src/uboot/tools:/opt/toolschain/4.5.1/bin:/home/wjc/bin
(gdb) set environment USER = wjc //设置用户为wjc
(gdb) unset environment PATH //删除PATH这个命令和“set environment PATH =“效果是等价的。
(gdb) cd hsxy/ //切换路径为hsxy Working directory /home/wjc/hsxy
(gdb) pwd //显示当前工作路径
Working directory /home/wjc/hsxy
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算