跳转到内容

Unix/命令/软件开发指南

来自维基教科书,开放的书籍,开放的世界

一个调试器。GNU 的替代方案是 gdb.

链接

从文件创建存档。通常的用法是从编译后的目标文件创建存档,然后将存档提供给链接器。

链接

编译汇编源代码。

链接

编译 C 语言源代码。GNU 的替代方案是 gcc。另一个替代方案是 clang

链接

输出 C 语言源代码的调用图。

链接

从源代码创建标签文件。标签文件是对象定义和对象使用的文本索引,其中对象包括变量、函数等。该文件有助于用户和工具(如文本编辑器)导航源代码。Emacs 使用其自己的变体,称为 etags;或者,您可以使用 Exuberant ctags 选项 -e 生成 Emacs 格式的标签文件。

链接

输出有关 C 语言源代码文件的交叉引用信息。

链接

编译 Fortran 77 源代码。GNU Fortran 编译器过去通过 g77 调用,现在通过 gfortran 调用。

链接

GNU 编译器集合是用于 C、C++ 和其他一些语言的编译器套件。可以使用 gcc 命令编译 C 语言

  • gcc test.c
    • 编译 test.c,将其与必需的库链接,并创建一个结果可执行文件,即 a.out 或 a.exe。
  • gcc test.c -o test
    • 编译 test.c,将其与必需的库链接,并创建 test 可执行文件。
  • gcc -c mod.c -o mod.o
    • 将 mod.c 编译成 mod.o 目标文件。-c 选项阻止链接。
  • gcc test.c -o test mod.o
    • 编译 test.c,将其与 mod.o 链接,并创建一个名为 test 的可执行文件。
  • g++ test.cpp -o test
    • 编译和链接 C++ 源代码。

链接

GNU 项目的一部分,有助于调试 C/C++ 程序以及其他一些语言的程序。要调试的程序需要使用 -g 标志编译。然后,您可以像 gdb myprog 一样启动 gdb,这会进入 gdb shell 而不运行程序。进入 gdb shell 后,您可以通过输入命令来控制 gdb

  • break main
    • 在 main 函数处设置断点。
  • b main
    • 上述命令的简写。一般来说,只要没有歧义,就可以使用命令的前缀。
  • break MySource.c:145
    • 在源代码 MySource.c 的第 145 行处设置断点。
  • break MySource.c:145 if myvar > 3
    • 设置条件断点。
  • watch myvar
    • 创建一个监视点,当变量或表达式发生更改时停止执行。
  • watch myvar if myvar > 3
    • 创建一个条件监视点。
  • info break
    • 列出断点。
  • info watch
    • 列出监视点。
  • run
    • 运行程序。最初,程序没有运行。可以从同一个 gdb 会话多次运行程序。
  • continue
    • 继续执行,直到遇到下一个断点或程序结束。
  • step
    • 执行程序的一步,如果适用,则进入函数调用。
  • next
    • 执行程序的一步,但不嵌套到函数调用。
  • quit
    • 退出调试器。
  • print myvar
    • 输出变量的值。
  • print (myvar * 3) << 4
    • 输出它计算的表达式的值。
  • disp myvar
    • 将变量添加到将在每一步输出的表达式列表中。
  • set myvar = 1
    • 更改变量的值。
  • set myvar = 1 << 4
    • 更改变量的值,支持表达式求值。
  • where
    • 输出调用堆栈。
  • help breakpoints
    • 输出有关断点的帮助信息,包括处理断点的命令。

维基教科书中的其他地方:GCC 调试/gdbLinux 应用程序调试技术/调试器.

链接

将目标文件链接到可执行文件。

链接

根据提供的词法规则生成 C 语言词法分析器的源代码。

链接

输出 C 语言源代码中的可疑内容。

链接

根据生产输入文件和输出文件之间依赖关系的规范,驱动文件生产过程。这样驱动的文件生产过程通常是编译和链接。

链接

输出在目标文件或类似包含符号的文件中找到的符号名称。

链接

  • nm, opengroup.org
  • nm 手册页, man.cat-v.org
  • nm, freebsd.org
  • nm 在 GNU 二进制工具中,sourceware.org

输出来自目标文件的信息,例如反汇编。未被 POSIX 涵盖。macOS 的类似工具是或曾经是 otool

链接

  • objdump, freebsd.org
  • objdump 在 GNU 二进制工具中,sourceware.org
  • otool 源代码,opensource.apple.com

对程序进行性能分析,识别占用最多时间的代码位置。

链接

从可执行文件和类似的编译结果文件中删除某些信息,这些信息对于某些目的而言是不必要的。

链接

根据提供的语法规范生成 C 语言解析器的源代码。代表 yet another compiler compiler。GNU 的替代方案是 bison,与 yacc 兼容。

链接

华夏公益教科书