收藏 分享(赏)

4 编程.ppt

上传人:tkhy51908 文档编号:6984644 上传时间:2019-04-29 格式:PPT 页数:15 大小:95.50KB
下载 相关 举报
4 编程.ppt_第1页
第1页 / 共15页
4 编程.ppt_第2页
第2页 / 共15页
4 编程.ppt_第3页
第3页 / 共15页
4 编程.ppt_第4页
第4页 / 共15页
4 编程.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、4、Linux基本的编程与调试方法,教师:赵艳红 Z,内容,gcc编译器 gdb调试器 nasm汇编器 make工具,gcc编译器,使用gcc编译器,编译程序 1、假定已经有一个程序为hello.c,使用如下方法把它编译成一个可执行文件: gcc hello.c -o myHello 2、执行此文件: 在命令行下输入程序名如下: ./ myHello,gdb调试器,使用gdb调试器,调试程序 1、如果要调试一个可执行程序,则编译此程序时必须使用-g选项。 例如:gcc -g eg1.c -o eg1 2、进入调试状态: gdb eg1 3、退出 gdb quit,4、gdb的基本使用方法 ru

2、n:启动程序 next:单步执行程序(跳过函数) step: 单步执行程序(逐语句即可以深入到自定义的函数内部执行单步操作) list :查看源代码 info locals:显示所有局部变量的值 print:打印变量的值,例如 print no1 设置断点:break 函数名 或 行号, 例如:break main , break 21设置断点之后,用run重新执行后,将在断点处中断执行,break 行号 if 条件表达式 根据条件设置断点。条件中指定的变量必须在指定的行号的行中,否则表达式就没有什么意义! 例如 break 17 if value=div ,其中变量value和div必须是第

3、17行中的变量。 info break:查看当前定义了什么断点及其条件 delete 断点号:删除指定的断点 set 变量名值:修改变量的值,nasm汇编器,nasm汇编器:用来编译汇编语言程序代码 ld 链接器:用来把nasm生成的扩展名为.o的文件链接成可执行文件。 例如 Nasm -f elf b.asm 生成b.o文件 ld -o b b.o 生成可执行文件b ./b 执行b,示例b.asm,; b.asm section .data ; 数据段声明msg db “Hello, world!“, 0xA ; 要输出的字符串len equ $ - msg ; 字串长度 section .

4、text ; 代码段声明 global _start ; 指定入口函数 _start: ; 在屏幕上显示一个字符串mov edx, len ; 参数三:字符串长度mov ecx, msg ; 参数二:要显示的字符串mov ebx, 1 ; 参数一:文件描述符(stdout) mov eax, 4 ; 系统调用号(sys_write) int 0x80 ; 调用内核功能; 退出程序mov ebx, 0 ; 参数一:退出代码mov eax, 1 ; 系统调用号(sys_exit) int 0x80 ; 调用内核功能,1、make工具简介 无论是在Linux还是在UNIX环境中,make都是一个非常

5、重要的系统开发工具。利用make工具,可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。make能够按照规则自动完成编译工作,并且可以只对程序员在上次编译后修改过的文件进行编译,减少重复编译的工作量。,make工具,Makefile文件示例,2、make工作原理,在默认的方式下,只要输入make命令就可以工作。具体的处理过程如下: (1)make会在当前目录下找文件名为“Makefile”或“makefile”的文件。 (2)如果找到,它会找文件中的第一个目标文件(target),在上面的

6、例子中,它会找到“edit”这个文件,并把这个文件作为最终的目标文件。 (3)如果edit文件不存在,或是edit所依赖的后面的.o文件的修改时间要比edit这个文件新,那么,就会执行后面所定义的命令来生成edit这个文件。 (4)如果edit所依赖的.o文件也不存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件(这有点像一个堆栈的过程)。 (5)如果指定的C文件和H文件是存在的, make会生成.o文件,然后再用.o文件链接生成执行文件edit。,3、makefile文件内容,makefile文件包含五方面的内容,即具体规则、隐含规则、宏定义、指

7、令和注释。 具体规则:用于阐述什么时间或怎样重新生成称为规则目标的一个或多个文件。 宏定义:为一个宏赋一个固定的字符串值,从而在以后的文件中能够用该宏代替这个字符串。 以“”开始的行是注释行,注释行在处理时将被make命令忽略,,4、makefile规则,targets . : dependencys . command . targets是一个目标文件或一组目标文件,可以是中间目标文件,也可以是执行文件。 dependencys就是用来说明要生成对应targets所需要的文件或是目标,即由哪些源文件来生成targets。 command就是make需要执行的命令(任意的Shell命令),每一个命令必须以Tab键开始,不能用空格符号替代。它是用来说明如何生成targets。每一次执行make命令时,如果dependencys中有一个以上的文件比target文件要新的话,command所定义的命令就会被系统执行,否则表示目标文件原来已经生成,并且是最新的,command命令不再执行。,5、clean规则的使用,clean规则:每个makefile文件中都有一个清空中间文件的规则。 例如 Clean: rm edit $(object) Clean规则一般情况都放在makefile文件的最后。,Makefile文件示例,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报