linux在当前目录下新建文件须要的命令是mkdir 文件名linux
而后进入新建的文件的命令是cd 文件名 返回上一层是cd ..vim
新建一个c语言程序的过程是先打开vim 编译器 ,而后写完后进行输入esc 输入:w进行保存 再输入:q进行退出而后进行编译连接,主要的命令是gcc -c 文件名.c。编译结束,而后gcc -o 文件名 文件名.o 连接结束。执行程序的主要命令是./文件名 便可编辑器
接下来要说的是进行查看汇编代码函数
前期准备优化
cd 文件名ui
使用不带编译优化的编译器
下面所指的文件名是建好的c语言文件it
gcc -O0 文件名.c -m32 -g -o 文件名编译
反汇编gcc
objdump -S(必定注意大写) 文件名>文件名.txt
用 vi编辑器打开便可看到反汇编的内容
第一步启用gdb
具体操做 (gdb)文件名
第二步 设置断点
具体操做 (gdb)break main(这是在main函数的地方设置的断点)
另外一种方法:(gdb)break 文件名.c:行数(在某一行设置断点)
第三步 运行程序
具体操做(gdb) run
第四步 执行一条指令
具体操做 (gdb)si(执行一条指令)s(执行一条语句)
第五步 查看定点寄存器的内容
具体操做(gdb)i r
第六步 查看指定的寄存器的内容
具体操做(gdb)i r esp ebp //esp栈顶寄存器 ebp 栈底寄存器
第七步 按字节显示当前栈帧内容,观察栈中数据
具体操做(gdb)x/yxb $esp //y=(ebp)-(esp)+4
第八步按4字节显示当前栈帧内容,观察栈中数据
具体操做(gdb)x/zxw $esp //z=((ebp)-(esp)+4)/4
第九步
退出:(gdb)quit