一生一芯-Linux环境搭建

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

posted @ 2024-01-26 16:52  、各自安好ぃ  阅读(105)  评论(0)    收藏  举报