linux程序编译调试介绍.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux程序编译调试介绍

嵌入式 Linux 工程开发实践 2.2.4 GCC 应用举例 GUN 编译器集合(GCC )是一个“免费”的C/C++工具链,它有力地支持了 Linux 系 统的发展,由于它被看作许多嵌入式处理器的一个交叉编译器,所以在嵌入式应用程序开发 中是一个非常流行的交叉编译工具,它包括 C/C++交叉编译器 arm-elf-gcc、汇编器 arm-elf-as、 连接器 arm-elf-ld、库管理器 arm-elf-ar、工程管理器make 、调试工具 gdb 和其他一些实用程 序。它的基本功能包括如下几点: 1.输出预处理后的 C/C++源程序; 2 .输出 C/C++源程序的汇编代码; 3 .输出二进制目标文件; 4 .生成静态库; 5 .生成可执行程序; 6 .转换文件格式。 在这里我们还要理清 Linux 软件开发中的一些基本概念。 ● 编辑器与编译器的概念:编辑器是输入程序代码的裁体。Linux 提供了几款编辑器, 如 vi (VIM ),还有KDevelop 等。而编译器则是将源程序转换成机器可识别的二进 制代码的工具。 ● 交叉编译器的基本概念:交叉编译器本身是运行在 host (宿主机)上,而交叉编译器 所生成的代码则运行在 target (目标机)上。 ● Linux 操作系统之上编程与操作系统之下编程的区别:在 Linux 操作系统之上编程, 例如,有一个 C 语言写的源文件 hello.c ,要对它进行编译,可用 gcc 编译器,命令行 如下: # gcc –o hello.o hello.c 其中 gcc 是 Linux 编译器的名字,-o 选项指定输出文件名。原代码和系统编译执行输出 过程如图 2.12 所示。 图2.12 Gcc 编译原代码过程示意 2.2.5 GDB 使用简介 Linux 包含了一个叫 GDB 的 GNU 调试程序,GDB 是一个用来调试 C/C++程序的强力 调试器,它使你能在程序运行时观察程序的内部结构和内存的使用情况,它可完成如下一些 调试任务: 29 第 2 章 Linux 系统应用程序开发 ● 设置断点; ● 监视程序变量的值; ● 单步执行程序; ● 修改变量的值。 在使用 GDB 调试程序之前,必须在用 GCC 编译源文件时加上-g 选项。可在 Makefile 文件中定义 CFLAGS 变量:CFLAGS= -g gdb 程序调试的对象是可执行文件,而不是程序的源代码文件。然而,并不是所有的可 执行文件都可以用 gdb 调试。如果要让产生的可执行文件可以用来调试,需在执行 gcc 命令 编译程序时,加上-g 参数,指定程序在编译时包含调试信息。调试信息包含程序里的每个 变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb 利用这些信息使源代码和 机器码相关联。在命令行上输入 gdb 并按回车键就可以运行 gdb 了,如果一切正常的话,将 启动 gdb,可以在屏幕上看到以下的内容: 图2.13 gdb 运行界面 启动 gdb 后,可以在命令行上指定很多的选项。输入:help 可以获得 gdb 的帮助信息。 如果想要了解某个具体命令(比如 break )的帮助信息,在 gdb 提示符下输入下面的命令: Break ,屏幕上会显示关于break 的帮助信息。从返回的信息可知,break 是用于设置断 点的命令。 gdb 支持很多的命令且能实现不同的功能。这些命令从简单的文件装入到允许你检查所 调用的堆栈内容的复杂命令, 下面列出了在使用 gdb 调试时会用到的一些命令。常见 GDB 命令列于下面: file FILE : 装载指定的可执行文件进行调试; break NUM :在指定的行上设置断点,NUM 为行号; Tbreak : 设置临时断点。它的语法与 break

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档