学习目标: 掌握多参数、单返回值的数学函数的定义和使用方法 学会用typedef定义结构体 学会用assert宏帮助调试 理解函数调用时用实参给形参赋值的过程 学会定义局部变量和全局变量 理解调用栈和栈帧,学会用gdb查看调用栈并选择栈帧 理解地址和指针 理解递归定义和递归函数 理解可执行文件中的正...
分类:
其他好文 时间:
2014-07-28 14:28:33
阅读次数:
240
栈帧由下面几个元素组成:
返回地址:函数完成后要返回的程序内部地址
局部数据存储:为局部变量分配的内存
参数存储:为函数参数分配的内存
栈指针和基指针:运行时系统用来管理栈的指针
栈指针通常指向栈顶部。基指针通常存在并指向栈帧内部的地址,比如返回地址,用来协调访问栈帧内部的元素。这两个指针都不是C指针,他们是运行时系统管理程序栈的地址。...
分类:
编程语言 时间:
2014-06-22 16:42:42
阅读次数:
235
在java虚拟机规范一书中总结出java虚拟机的结构,在这画出粗略图,方便以后记起。后面写下各个项的一些解析。java 虚拟机栈: 每一条Java虚拟机线程都有自己私有的Java虚拟机栈(Java Virtual Machine Stack)①,这个栈与线程同时创建,用于存储栈帧(Frames, §...
分类:
编程语言 时间:
2014-06-19 07:25:22
阅读次数:
289
首先来了解一下jvm(java虚拟机)中的几个比较重要的内存区域
方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。
常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。
堆区:用于存放类的对象实例。
栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法...
分类:
编程语言 时间:
2014-06-14 00:36:36
阅读次数:
357
6 调用栈实例分析 本节通过代码实例分析函数调用过程中栈帧的布局、形成和消亡。6.1 栈帧的布局
示例代码如下: 1 //StackReg.c 2 #include 3 4 //获取函数运行时寄存器%ebp和%esp的值 5 #define
FETCH_SREG(_ebp, _esp) ...
分类:
编程语言 时间:
2014-06-04 19:30:54
阅读次数:
420
1.方法区 类的全限定名、直接超类的全限定名、该类是类或者接口、访问修饰符、直接超接口全限定名; 运行时常量池、字段、方法、静态变量、到类装载器的引用、到类class的引用2.栈内存 局部变量区、操作数栈、帧数据区3.堆内存 存放由new创建的对象和数组*栈内存和堆内存 栈存取速度比堆快,仅次于寄存...
分类:
编程语言 时间:
2014-05-26 01:08:23
阅读次数:
329
简单的call函数过程
1.参数入栈,返回地址入栈。在一个栈帧里,call function的完整过程应该是这样的,call调用的过程要经历两个过程,一个是首先把调用函数之前的指令的下一条指令地址压入栈中(push ebp),作为返回地址,也就是保存旧栈地址,接着会跳转到被调函数的地址入口。呵呵,现在就是借此来恶补汇编哈。
2.代码区跳转。在执行被调函数的时候,为函数重新开辟栈帧,(mov ebp,esp)这句的意思是将旧栈顶换为新栈的底,这里的新栈一般是由函数专属的哈, 下面就是用sub esp, ...
分类:
其他好文 时间:
2014-05-22 11:34:25
阅读次数:
189
转载:http://bbs.csdn.net/topics/90317145http://blog.chinaunix.net/uid-26817832-id-3347227.html帧指针
和栈指针到底是什么,有什么联系吗FP帧指针指向帧头SP栈指针指向栈顶大部分现代计算机系统使用栈来给进程传递参...
分类:
其他好文 时间:
2014-05-19 21:00:52
阅读次数:
1047
第一章 内存分配
1. 内存区域。
方法区和堆(线程共享),程序计数器 , VM栈 和 本地方法栈(线程隔离)。
1) java虚拟机栈:线程私有。描述的是java方法执行的内存模型:栈帧,用户存储 局部变量表,操作数栈,动态链接,方法出口等信息。
局部变量表在编译时即可完全确定!如果线程请求的栈深度大于 规定的深度,StackOverflowErro...
分类:
其他好文 时间:
2014-05-10 04:47:01
阅读次数:
275
1.jvm 内存结构
1)程序计数器
较小的内存区域,可以看作是当前线程所执行的字节码的行号指示器;每条线程独立;
2)java虚拟机栈
描述java方法执行的内存模型,即每个方法在执行的同时都会创建一个栈帧用户存储局部变量表、操作数栈、动态链接、方法出口等信息;即一个方法的调用直至完成的过程对应着一个栈帧的入栈到出栈的过程。同样是线程私有;
3)本地方法栈
对应虚拟机使用的nativ...
分类:
编程语言 时间:
2014-04-27 22:12:22
阅读次数:
440