Linux GCC与GDB调试

来源:互联网 发布:php写一个接口需要多久 编辑:程序博客网 时间:2024/05/03 06:50

1.gcc

如果加-c选项仅编译(compile),只会生成xxx.o
gcc -c main.cgcc -c main.c -o main.o
如果加上-o选项,则生成可执行文件
gcc -o main.out main.o #将main.o链接成可执行文件main.out gcc -o main.out main.c #将main.c链接成可执行文件main.out 
如果加上-Wall 选项,可以自动提示一些出错警告的信息
gcc -Wall -o main.out main.c
如果加-g选项(默认g2,可选g1~g3),主要用于与GDB的调试(可显示函数名 行号等)
gcc -g -o main.out main.o

2.gdb



3.gdb使用方法

应用测试1---程序异常分析
step1:正常编译,运行程序 (程序异常时会产生core-dump文件)
step2:gdb [可执行程序] core-file     #example :gdb test.out Core_test.out_xxxx
step3:bt                             #查看函数调用及参数 
(gdb) bt #0  0x00008470 in core_test () at main.c:8#1  0x00008494 in main () at main.c:14


应用测试2---单步调试
step1:gdb [可执行程序]
step2:start     #开始运行程序


参考:

Makefile的三个变量$@ $^ $<
https://my.oschina.net/u/1413984/blog/199029
GCC优化级别及GDB调试级别:
http://www.360doc.com/content/11/1204/22/532901_169714672.shtml
用GDB调试程序(跟我一起写MakeFile作者陈皓):

http://blog.csdn.net/haoel/article/details/2879

GDB官网文档:
https://www.gnu.org/software/gdb/documentation/
使用GDB进行嵌入式远程调试:
http://www.cnblogs.com/lidabo/p/5645655.html
LINUX core dump详解 & GDB调试
http://blog.csdn.net/ariessurfer/article/details/7648938

0 0