第 27 章 本阶段总结

在这一阶段我们又学习了很多新的语法规则,首先读者应该回到第 I 部分「C 语言入门」第 13 章「本阶段总结」把那些知识点重新总结一遍。然后我们总结一下各种开发调试工具的用法。

1. gcc

2. gdb

  1. 第 10 章「gdb」集中介绍了 gdb 的基本命令和调试方法。
  2. 第 19 章「汇编与 C 之间的关系」第 1 节「函数调用」提到了 gdb 的指令级调试和反汇编命令。
  3. 如果一个程序由多个 .c 文件编译链接而成,用 gdb 调试时如何定位某个源文件中的某一行代码呢?在第 20 章「链接详解」第 1 节「多目标文件的链接」有介绍。
  4. 第 23 章「指针」第 6 节「指向指针的指针与指针数组」提到了用 gdb 调试时如何给程序提供命令行参数。

3. 其它开发调试工具

  1. as,汇编器,用法详见第 18 章「x86 汇编程序基础」例 18.1「最简单的汇编程序」
  2. ld,链接器,用法详见第 18 章「x86 汇编程序基础」例 18.1「最简单的汇编程序」,用 --verbose 选项可以显示默认链接脚本,详见第 20 章「链接详解」第 1 节「多目标文件的链接」
  3. readelf,读 ELF 文件信息,用法详见第 18 章「x86 汇编程序基础」第 5.1 节「目标文件」
  4. objdump,显示目标文件中的信息,本书主要用它做反汇编,用法详见第 18 章「x86 汇编程序基础」第 5.1 节「目标文件」
  5. hexdump,以十六进制或 ASCII 码显示一个文件,用法详见第 18 章「x86 汇编程序基础」第 5.1 节「目标文件」
  6. ar,把目标文件打包成静态库,用法详见第 20 章「链接详解」第 3 节「静态库」
  7. ranlib,给 ar 打包的静态库建索引,用法详见第 20 章「链接详解」第 3 节「静态库」
  8. nm,查看符号表,用法详见第 19 章「汇编与 C 之间的关系」第 2 节「main 函数和启动例程」