[第5期] 工欲善其事 必先利其器(二)

2019-04-20  本文已影响0人  坑儿里的小朕

✌大家好,这里是小磊说书,我是小磊,欢迎大家来听我说书!言归正传...

  ,今天给大家继续展示一个Linux案例开发过程:

C语言课程

案例二

工具:

  CentOS 6.5 + GCC + Vim

描述:

  在CentOS 6.5系统下,使用编译工具GCC配合编辑工具Vim试验第一个经典程序Hello World

过程:
  • CentOS简单指令
  • 创建文件夹
    mkdir [directoryname]
  • 显示文件夹内容
    ls - 显示文件夹内容
    ls -a - 显示文件夹全部内容(含隐藏文件...)
    ls -l - 以列表形式显示文件夹内容的详细信息
  • 创建文件
    touch [filename]
  • 修正文件权限
    chmod [+/-options] [filename]
  • 切换文件夹路径
    cd [pathname]
    ,通过文件的名称颜色可以简单区分文件属性!
  • Vim简介
  • 打开编辑器
    vi/vim [filename]
  • 进入/退出编辑状态(进入命令行状态)
    i/ESC
  • 编辑指令
     向前/后删除
      Backspace/Delete
     输入 - 任意可打印字符
     光标移动上/下/左/右
      j/k/h/l或者方向键
    ,安装了管理工具的系统,很多指令不需要了,使用规则和Windows一样
  • 命令行指令
     当前位置前/后插入 i/a
     当前行首/尾插入 I/A
     当前行前/后插入行 O/o
     删除当前光标下的字符 x
     删除当前行 dd
     拷贝当前行 yy
     粘贴在当前位置前/后 P/p
     正向/反向查找命令 /text/?text(按N/n查找前/后一个)
     退出/强制退出(不保存)/保存退出/保存 :q/:q!/:wq(:x)/:w
  • GCC/G++简介
  • GNU简介
    GNU是一款自由的操作系统,是GNU计划的产品,全称GNU’s Not Unix,类Unix系统。
  • GCC语法
    gcc [options] [filename]
  • OPTIONS
    -c 只编译,不链接成可执行文件,生成中间文件-.o
    -o 制定输出文件的文件名,若不指定,则生成-.out
    -g 生成的文件中包含可调试的符号标记,供GDB指令使用
    -O 优化参数
    -O2 更好的优化参数
    -v 显示执行的详细过程,包括版本号等
    -E 只激活预处理
    -S 只激活预处理和预编译
  • 编译过程
     预处理阶段 gcc -o *.i -E *.c
     汇编阶段 gcc -o *.s -S *.i
     编译阶段 gcc -o *.o -c *.s
     链接阶段 gcc -o *.out *.o
  • 执行
    ./*.out
  • GDB简介
  • GDB语法
    gdb [filename]
    gdb + file [filename]
  • 调试指令及参数
     详见下表[摘自百度网页]
  • 补充
    gcc编译需要带有-g参数的文件才能调试
    list默认显示代码10行
    list x显示以x行为中心的10行
    list functionname显示以函数名functionname为中心的10行
    list -显示上一周期打印过的源代码
    break loc在loc位置设置断点
    info breakpoints显示断点信息
    delete breakpoints删除全部断点
    delete breakpoints x删除断点x
    clear n清除第n行的断点
    disable/enable x设置断点x是否可用
    display cnt查看参数的值,disableenabledeleteinfo等也可用于操作参数
    step n/next n跳过n条语句
命令 缩写 说明
list l 显示多行源代码
break b 设置断点,程序运行到断点的位置会停下来
info i 描述程序的状态
run r 开始运行程序
display disp 跟踪查看某个变量,每次停下来都显示它的值
step s 执行下条语句,若为函数调用,则进入函数执行其第一条语句
next n 执行下条语句,若为函数调用,不进入函数内部执行,即不用步步执行
print p 打印内部变量值
continue c 继续程序的运行,直到遇到下一个断点
set name=n 设置变量的值
start st 开始执行程序,在main函数的第一条语句前面停下来
file 装入需要调试的程序
kill k 终止正在调试的程序
watch 程序运行中,监视变量值的变化
backtrace bt 查看函数调用信息(堆栈)
frame f 查看栈帧
quit q 退出GDB环境

✨ 更多精彩,期待中...

  👉 详情请参考视频解说! 📄ohxr
  ✉ liuxiaoleivc@163.com


版权声明®

  版权所有,翻版必究!
  小磊说书系列课程文本及表格均为原创作品,可以转载或学习,但要注明作者和出处,然文章中图片均链接自百度网页,未经作者许可禁止一切商用活动!

上一篇 下一篇

猜你喜欢

热点阅读