码迷,mamicode.com
首页 >  
搜索关键字:栈帧    ( 580个结果
【链接】函数栈帧
本节通过反汇编可执行文件得到的文件,研究函数栈帧的相关内容;...
分类:其他好文   时间:2015-04-05 23:35:38    阅读次数:290
Java内存区域——JVM系列<一>
Java虚拟机运行时数据区 运行时数据区主要包括:方法区、堆、虚拟机栈、本地方法栈、程序计数器。 其中方法区和栈是线程共享的区域,另外三块区域是每个线程私有的区域。各个数据区的功能简单说明如下: 程序计数器:当前线程所执行的字节码的行号指示器。 虚拟机栈:描述Java方法执行的内存模型——每个方法在执行的同时都会创建一个栈帧用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法...
分类:编程语言   时间:2015-03-13 22:24:59    阅读次数:223
Java内存模型与垃圾收集
运行时数据区域:                线程私有:           1.程序计数器                如果正在执行的方法为Native方法,程序计数器值为空。           2.java虚拟机栈                虚拟机栈描述java方法执行的内存模型:每个方法被执行时会同时创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口。从方法的调...
分类:编程语言   时间:2015-03-09 17:40:15    阅读次数:151
Linux进程的栈和进程中函数的栈帧
Linux进程的栈和进程中函数的栈帧 主要理解了Linux进程的栈和函数的栈帧的区别和联系...
分类:系统相关   时间:2015-03-05 23:46:29    阅读次数:273
垃圾收集器与内存分配策略
可达性分析算法 来判断对象是否存活。这个算法的基本思路是通多一系列的称为“gc roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到gc roots没有任何引用链项连时(图论来说,从gc到这个对象不可达),则证明此对象是不可用的。 JAVA语言中,可作为gc roots的对象包括下面几种: 虚拟机栈(栈帧中的本地变量表)中引用的对象。 方法区中类静态属性...
分类:其他好文   时间:2015-02-09 12:57:44    阅读次数:138
调试64bit程序所面临的挑战-part1
调试64bit程序所面临的挑战 如果到目前为止,你还没有调试过优化后的64bit代码,为了不落后于时代,那就赶紧去尝试吧。由于64bit下fastcall调用方式和大量通用寄存器的存在,找出任意栈帧中局部变量的值将会变得非常棘手。 本文,我将详述一些我非常喜欢的调试64bit代码的技巧。但在此之前,我们先对64bit下函数的调用方式做一个了解。 X64调用约定 如果你熟悉32位平台下的fa...
分类:其他好文   时间:2015-01-31 20:40:15    阅读次数:161
不通过传值传指针传引用而实现形参修改实参的值
1、首先了解一下堆栈帧的创建步骤(来自《32位汇编语言程序设计》王艳平一书):      1)主程序把传递的参数压入堆栈;      2)调用子程序时,返回地址压入堆栈;      3)子程序中,EBP压入堆栈;设置EBP等于ESP,通过EBP访问参数和局部变量;      4)子程序有局部变量,ESP减去一个数值,在堆栈预留局部变量使用的空间;       5)子程序要保护的寄存器...
分类:其他好文   时间:2015-01-27 15:04:49    阅读次数:155
x86函数调用约定
以下摘自《IDA Pro》,貌似有一些细节之处没有交代清楚呢,需要进一步思考、实践。 了解栈帧的基本概念后,接下来详细介绍它们的结构。下面的例子涉及x86体系结构和与常见的x86编译器(如Microsoft Visual C/C++或GNU的gcc/g++)有关的行为。创建栈帧的最重要的步骤是,通过...
分类:其他好文   时间:2015-01-25 23:56:05    阅读次数:423
java-多线程深入(一)JMM
(一)java内存区域概况 jvm运行java程序时把所管理的内存分成几个部分:方法区、java栈、本地方法栈、java堆、pc程序计数器。 class字节码装载解析后,在多线程环境中,方法区和java堆数据共享,每个线程自带pc程序计数器和java栈,栈帧中包含方法的所有状态(局部变量、传参、返回值、运算中间结果等)。对共享数据需要考虑多线程并发问题。 更详细内容可参考《深入理解JVM虚拟...
分类:编程语言   时间:2015-01-20 10:34:31    阅读次数:222
函数的工作原理
函数的工作借助于栈。 栈在内存中是一块特殊的存储空间,它的存储原则是“先进后出”,最先被存储的数据最后被释放。 esp被称为栈顶指针,ebp称为栈底指针,通过这两个指针寄存器保存当前栈的起始地址与结束地址。 esp与ebp之间所构成的空间便成为栈帧。通常,在VC++中,栈帧中可以寻址的数据有局部变量、函数返回地址、函数参数等。不同的两次函数调用,所形成的栈帧也不同。当由一个函数进入到...
分类:其他好文   时间:2015-01-09 15:34:44    阅读次数:258
580条   上一页 1 ... 52 53 54 55 56 ... 58 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!