windows里调试手段比较多 VS eclipse,图形界面很丰富,小伙伴一定都接触的比较多。
linux下,怎么调试C代码呢,中间需要提前介绍makefile,这里不系统介绍,就把最常用的列几点:
:= 立即赋值
= 统一赋值
?= 如果没赋值,就设置这个值
+= 追加赋值
通配符%.o所有的.o文件,有时通配符不太灵,一般就用wildcard来实现。
下面是一段简单的makefile,可作为模板套用。
CC = gcc
INCLUDE = -I ./
//INCLUDE += -I XXX/XXXX
LIBS = -lm
LIBS += -L xxx
LIBS += -L xxx.a
CFLAGS = -g
SRCS = $(wildcard *.c */*.c)
OBJS = $(padsubst %.c,%.o,$(SRCS))
TARGET = test
$(TARGET):$(OBJS)
$(CC) $(CFLAGS) -o $@ $^
%.o:%.c
$(CC) $(CFLAGS) -o $@ -c $<
clean:
rm -f $(TARGET) $(OBJS)
安装gcc\g++\gdb
例如ubuntu就是apt install gcc\g++\gdb,可以用which gcc看是否安装过
然后make好可执行文件后,就可以用gdb 可执行文件调试了
L:查看代码
b main :在main函数设置断点
b xx.c:5 在xx.c的第五行设置断点
i b:查看所有的断点信息
r:运行 n:下一步 c:继续运行直到断点
p xxx :打印xxx的值;p local 打印本地变量的值