1、机器码—机器语言
2、汇编语言,汇编语言和机器码是一一对应的
3、高级语言
1、C:结构化编程语言
2、C++/java/C#...面向对象程序设计语言
3、javaScript 给予对象的语言
1、C/OC/C++ 源代码(文本)—编译—>可执行程序(二进制):编译型语言
2、shell/Python/Ruby…../:解释型语言
3、Java/C#…./: 编译->中间代码->(也可叫编译型语言)
1、点号后面的叫语言代码
2、.h/.c:C语言
3、.h/.cpp/.cxx/.cc/.hpp:C++
4、.h/.mm:Objective-C++
5、.swift:swift
6、编译器:将源代码->可执行文件
7、调试器:
8、集成开发环境(IDE):Xcode
9、iOS SDK:iOS 软件开发集合
1、C语言开发流程
2、编写源代码
3、编译
4、clang main.c
5、结果为a.out
6、./a.out
7、用 lldb 调试程序
1、cpp :c语言的预处理器
2、 编译预处理
3、clang main.c > main .i.c
3、编译,结果是汇编语言
4、clang -s main.i.c
5、汇编,结果为Object文件(目标文件,.o),二进制,每个目标文件对应一个源文件,可能只包含程序的一部分,不能运行
6、clang -c main.i.s
7、链接(link,ld),结果为可执行程序
8、clang main.i.o -o main
1、说明性语句
2、可执行语句,只有可执行语句才能执行
clang -g main.c 将文件编译成带有调试信息的可执行文件
3、(lldb)里面r run(运行)
4、(lldb)里面b 6 break(设置断点)
5、(lldb)里面n next(单步执行)
6、(lldb)里面c continue(继续执行直到另一个断点或程序结束)
7、(lldb)里面q quit(退出调试)
8、(lldb)里面p a print a (打印a的值)
程序解析:
A、输入两个整数求和
B、程序BUG查找流程
1、运行终端,输入 clang -g jishu.c (将文件编译成带有调试信息的可执行文件),运行后会新增a.out和a.out.dSYM
2、输入 lldb a.out 得出zouyongjin:yufa apple$ lldb a.out
(lldb) target create "a.out"
Current executable set to 'a.out' (x86_64).
3、输入 b 5 (在第5行打断)得到 Breakpoint 1: where = a.out`main + 29 at jishu.c:9, address = 0x0000000100000efd
4、输入 r 得到:
5、输入 n (一步一步运行)
6、由此可知错误点在第11步
网友评论