【实验】GDB实验
一、实验目的
1、理解gdb工具原理
2、使用gdb工具进行调试程序
3、gdb远程调试
2、使用gdb工具进行调试程序
3、gdb远程调试
二、实验原理(略)
三、实验步骤
1、在/embedded目录下创建目录,目录名:testgdb
2、创建文件greeting.c 如下
2、创建文件greeting.c 如下
#include
int main()
{
void my_print(char *string);
void my_print2(char *string);
char my_string[]="hello there";
my_print(my_string);
my_print2(my_string);
}
void my_print(char *string)
{
printf("The string is %sn",string);
}
void my_print2(char *string)
{
char *string2;
int size,size2,i;
// int size,i;
size=strlen(string);
size2=size-1;
string2=(char *)malloc(size+1);
for (i=0;i
string2[size2-i]=string[i];
// string2[size-i]=string[i];
string string2[size+1]='0';
printf("The string printed backwand is %sn",string2);
}
int main()
{
void my_print(char *string);
void my_print2(char *string);
char my_string[]="hello there";
my_print(my_string);
my_print2(my_string);
}
void my_print(char *string)
{
printf("The string is %sn",string);
}
void my_print2(char *string)
{
char *string2;
int size,size2,i;
// int size,i;
size=strlen(string);
size2=size-1;
string2=(char *)malloc(size+1);
for (i=0;i
string2[size2-i]=string[i];
// string2[size-i]=string[i];
string string2[size+1]='0';
printf("The string printed backwand is %sn",string2);
}
3、创建Makefile文件如下:
5、执行gdb greeting 进入gdb调试
6、
如上指令尝试调试
7、远程调试主要步骤:
–(minicom下)执行
./gdbserver 192.168.0.110:2345 hello
注意所在目录
–(另一个终端下)
./arm-linux-gdb hello
(gdb) target remote 192.168.0.115:2345
greeting:greeting.o
gcc -g -o greeting greeting.o
greeting.o:greeting.c
gcc -g -c greeting.c
clean:
rm *.o
4、执行make
gcc -g -o greeting greeting.o
greeting.o:greeting.c
gcc -g -c greeting.c
clean:
rm *.o
5、执行gdb greeting 进入gdb调试
6、
命
令
|
描
述
| |
file
|
装入想要调试的可执行文件
.
| |
kill
|
终止正在调试的程序
.
| |
list
|
列出产生执行文件的源代码的一部分
.
| |
next
|
执行一行源代码但不进入函数内部
.
| |
step
|
执行一行源代码而且进入函数内部
.
| |
run
|
执行当前被调试的程序
| |
quit
|
终止
gdb
| |
watch
|
使你能监视一个变量的值而不管它何时被改变
.
| |
break
|
在代码里设置断点
,
这将使程序执行到这里时被挂起
.
| |
make
|
使你能不退出
gdb
就可以重新产生可执行文件
.
| |
shell
|
使你能不离开
gdb
就执行
UNIX shell
命令
.
|
7、远程调试主要步骤:
–(minicom下)执行
./gdbserver 192.168.0.110:2345 hello
注意所在目录
–(另一个终端下)
./arm-linux-gdb hello
(gdb) target remote 192.168.0.115:2345