嵌入式linux开发chapter3_第1页
嵌入式linux开发chapter3_第2页
嵌入式linux开发chapter3_第3页
嵌入式linux开发chapter3_第4页
嵌入式linux开发chapter3_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、图2-2 vi编辑器的三种工作模式vi的常用命令的常用命令命令 说明 y 复制当前行至编辑缓冲区 ny 复制当前行开始的n行至编辑缓冲区 p 将编辑缓冲区的内容粘贴到光标后的一行 p 将编辑缓冲区的内容粘贴到光标前的一行 a 从光标所在位置后面开始新增文本 命令 命令说明a 从光标所在行最后面的地方开始新增文本 i 从光标所在位置前面开始插入文本 i 从光标所在列的第一个非空白字元前面开始插入文本 o 在光标所在列下新增一行并进入输入模式 o 在光标所在列上方新增一行并进入输入模式 命令 说明 :q 结束编辑 :q! 强制离开vi,放弃存盘 :w 存盘 :w filename 将编辑内容保存为

2、名为filename的文件 :wq 存盘并退出 pre-processor(cpp / gcc -e)compiler(cc1 / gcc -s)assembler(as / gcc -c)linker(ld)hello.c(text)hello.i(text)hello.s(text)hello.o(binary)hello(binary)printf.o(binary)一个“hello world”程序的演变历程还可以用下面的方式来运行还可以用下面的方式来运行gdbgdb: :gdbgdb filename filename其中,其中,filenamefilename是要调试的可执行文是要

3、调试的可执行文件。用这种方式运行件。用这种方式运行gdbgdb可以直接指定想要可以直接指定想要调试的程序。这和启动调试的程序。这和启动gdbgdb后执行后执行file file filenamefilename命令效果完全一样。也可以用命令效果完全一样。也可以用gdbgdb去检查一个因程序异常终止而产生的去检查一个因程序异常终止而产生的corecore文件,或者与一个正在运行的程序相连。文件,或者与一个正在运行的程序相连。 gdb支持很多的命令且能实现不同的功能。这些命令从简单的文件装入到允许你检查所调用的堆栈内容的复杂命令, 下面列出了在使用gdb 调试时会用到的一些命令。n1)file命令

4、:装入想要调试的可执行文件。 n2)cd命令:改变工作目录。 n3)pwd命令:返回当前工作日录。 n4)run命令:执行当前被调试的程序。 n5)kill命令:停止正在调试的应用程序。 6)list命令:列出正在调试的应用程序的源代码。命令:列出正在调试的应用程序的源代码。 7)break命令:设置断点。命令:设置断点。 8)tbreak命令;设置临时断点。它的语法与命令;设置临时断点。它的语法与break相同。区别在于用相同。区别在于用tbreak设置的断点执行一设置的断点执行一次之后立即消失。次之后立即消失。 9)watch命令:设置监视点,监视表达式的变化。命令:设置监视点,监视表达式

5、的变化。 10)awatch命令:设置读写监视点。当要监视的命令:设置读写监视点。当要监视的表达式被读或写时将应用程序挂起。它的语法与表达式被读或写时将应用程序挂起。它的语法与watch命令相同。命令相同。 11)rwatch命令:设置读监视点,当监视表达式命令:设置读监视点,当监视表达式被读时将程序挂起,等侍调试。此命令的语法与被读时将程序挂起,等侍调试。此命令的语法与watch相同。相同。n12)next命令:执行下一条源代码,但是不进入命令:执行下一条源代码,但是不进入函数内部。也就是说,将一条函数调用作为一条函数内部。也就是说,将一条函数调用作为一条语句执行。执行这个命令的前提是已经语

6、句执行。执行这个命令的前提是已经run,开始,开始了代码的执行。了代码的执行。 n13)step命令:执行下一条源代码,进入函数内命令:执行下一条源代码,进入函数内部。如果调用了某个函数,会跳到函数所在的代部。如果调用了某个函数,会跳到函数所在的代码中等候一步步执行。执行这个命令的前提是已码中等候一步步执行。执行这个命令的前提是已经用经用run开始执行代码。开始执行代码。 n14)display命令:在应用程序每次停止运行时显命令:在应用程序每次停止运行时显示表达式的值。示表达式的值。n15)info break命令:显示当前断点列表,包括每命令:显示当前断点列表,包括每个断点到达的次数。个断

7、点到达的次数。n16)info files命令:显示调试文件的信息。命令:显示调试文件的信息。 n17)info func命令:显示所有的函数名。命令:显示所有的函数名。 n18)info local命令:显示当前函数的所有局部变量命令:显示当前函数的所有局部变量的信息。的信息。 n19)info prog命令:显示调试程序的执行状态。命令:显示调试程序的执行状态。 n20)print命令;显示表达式的值。命令;显示表达式的值。 n21)delete命令:删除断点。指定一个断点号码,命令:删除断点。指定一个断点号码,则删除指定断点。不指定参数则删除所有的断点。则删除指定断点。不指定参数则删除所

8、有的断点。 n22)shell命令:执行命令:执行linux shell命令。命令。 n23)make命令:不退出命令:不退出gdb而重新编译生成可执行而重新编译生成可执行文件。文件。 n24)quit命令:退出命令:退出gdb。一个一个makefile文件主要含有一系列的规则,每条规则文件主要含有一系列的规则,每条规则包含以下内容。包含以下内容。n一个目标(一个目标(target),即),即make最终需要创建的文件,如可执行文最终需要创建的文件,如可执行文件和目标文件;目标也可以是要执行的动作,如件和目标文件;目标也可以是要执行的动作,如“clean”。n一个或多个依赖文件(一个或多个依赖

9、文件(dependency)列表,通常是编译目标文件)列表,通常是编译目标文件所需要的其他文件。所需要的其他文件。n 一系列命今一系列命今(command),是,是make执行的动作,通常是把指定的相执行的动作,通常是把指定的相关文件编译成目标文件的编译命令,每个命令占一行,且每个命关文件编译成目标文件的编译命令,每个命令占一行,且每个命令行的起始字符必须为令行的起始字符必须为tab字符。字符。nmakefile规则的一般形式如下:target:dependency dependency(tab)创建的目标为可执行程序创建的目标为可执行程序hello,则对应的,则对应的makefike写写为:

10、为:hello:hello.c hello.hgcc hello.c -o hello例如,有以下的makefile文件:test:prog.o code.ogcc o test prog.o code.oprog.o:prog.c prog.h code.hgcc c prog.c o prog.ocode.o:code.c code.hgcc c code.c o code.oclean:rm f *.o n变量的主要作用如下:n n保存文件名列表。n保存可执行命令名。 n保存编译器的参数。n定义变量的语法:varname=stringn使用时,把变量用括号括起来,并在前面加上$符号,就可

11、以引用变量的值: $varnamen现在利用变量把前面的makefile重写一遍:objs=prog.o code.occ=gcctest:$ objs $ cc o test $ objs prog.o:prog.c prog.h code.h$ cc c prog.c o prog.ocode.o:code.c code.h$ cc c code.c o code.oclean:rm f *.o makefile中还有一些预定义变量和自动变量,但是看起来并不像自定义变量那样直观。p89表3.15给出了常见的自动变量。除了自动变量外,makefile中还有一些预定义的内部变量,用于定义编译命

12、令名、编译参数等,如表3.14所示n现在利用自动变量把前面的makefile重写一遍:objs=prog.o code.occ=gcctest:$ objs $ cc o test $ objs prog.o:prog.c prog.h code.h$ cc c prog.c o prog.ocode.o:code.c code.h$ cc c code.c o code.oclean:rm f *.o objs=prog.o code.occ=gcctest:$ objs $ cc o $ $prog.o:prog.c prog.h code.h$ cc c $ o $code.o:code.c code.h$ cc c $ o $clean:rm f *.o nmake知道一些默认的动作,它有一些称作隐含规则的内置的规则,这些规则告诉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论