1.gdb调试
1.gdb -q Filename 进入gdb调试器
2.(gdb)b 3 在第三行添加断点 breakpoint
3.(gdb) run 执行程序
4.(gdb)whatis iNum 查看iNum的数据类型
5.(gdb) c 继续执行程序(直到下一个断点或者之后没有断点就运行完整个程序)
6.(gdb) n 一步一步执行程序
7.(gdb) p iNum 输出iNum值 (gdb中变量的值是每一步执行之前的数字)
2.Makefile
从源码到可执行文件的四个阶段:
- 预处理(.c -> .i)
- gcc -E test.c -o test.i
- 编译 (.i -> .s) 得到汇编语言代码
- gcc -S test.i -o test.s
- 汇编 (.s -> .o) 得到机器语言代码
- gcc -c test.s -o test.o
- 链接 (.o -> ) 得到可执行文件
- gcc test.o -o test
gcc(选项)(参数):
-o:指定生成的输出文件;
-On:n为数字1~3,使用编译优化级别n编译程序;
-E:仅执行编译预处理;
-S:将C代码转换为汇编代码;
-Wall:显示警告信息;
-c:仅执行编译操作,不进行链接操作。
3.tmux使用
Ctrl + b, shift + % 左右窗格
Ctrl + b, shift + “ 上下窗格
4.编译nemu的坑
make menuconfig命令后出现如下情况:
/home/lixuanbo/Desktop/ysyx/ysyx-workbench/nemu/scripts/config.mk:20: Warning: .config does not exists!
/home/lixuanbo/Desktop/ysyx/ysyx-workbench/nemu/scripts/config.mk:21: To build the project, first run 'make menuconfig'.
-
+ CC confdata.c + CC expr.c + CC preprocess.c + CC symbol.c + CC util.c + YACC build/parser.tab.h make[1]: bison: 没有那个文件或目录 make[1]: *** [Makefile:27:build/parser.tab.h] 错误 127 make: *** [/home/lixuanbo/Desktop/ysyx/ysyx-workbench/nemu/scripts/config.mk:39:/home/lixuanbo/Desktop/ysyx/ysyx-workbench/nemu/tools/kconfig/build/mconf] 错误 2
解决方法:要安装词法分析和语法分析工具 flex和bison
标签:gcc,CC,一芯,ysyx,nemu,gdb,Linux,test,搭建 From: https://www.cnblogs.com/xuanbol/p/17989736