进程的概念: 进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和 ...
分类:
编程语言 时间:
2020-07-07 09:54:10
阅读次数:
59
OS和裸机的区别 OS即(operating system)操作系统,比如我们常用的windows系统,mac系统,android系统,ios系统,linux系统等,都属于操作系统。操作系统的本质是一个特殊的软件,它直接管理硬件,同时为各个应用程序划分资源(内存,堆栈,时间片等),并提供控制(调度, ...
分类:
其他好文 时间:
2020-01-23 19:55:31
阅读次数:
215
为什么写这个dotmemory呢,还是因为之前面试,被血虐。虽然之前看过两遍CLR VIA C#,但是里面讲的CLR知识都是理论说的,自己并没有实际去验证。面试的时候,面试官问了一些内存堆栈和寄存器缓存,内存分配和优化以及gc的一些比较细的问题。被锤了。于是就想通过一些工具看看到底怎么回事,验证一下 ...
分类:
其他好文 时间:
2019-10-03 14:48:53
阅读次数:
210
进程 电脑的应用程序,都是进程,它有自己的地址空间 包括文本区域(text region)数据区域(data region)和堆栈(stack region) 文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 当程序处于I ...
分类:
编程语言 时间:
2019-07-31 18:23:22
阅读次数:
95
对于malloc和free对内存堆栈块的空间操作,在keilMDK中需要满足下面几个条件: 1、使用的代码文件中需要包含头文件 <stdlib.h> 2、在工程的属性设置中需要把 Use MicroLIB 选项勾选,如下图。 3、这时候原则上就可以使用空间申请和释放的两个操作函数了,但是由于STM3 ...
分类:
其他好文 时间:
2019-07-06 09:20:10
阅读次数:
146
缓冲区溢出是一类特殊的数组及数字边界错误。大多数缓冲区溢出的发生是由于输入超出了所分配的空间大小,然而数据还是被写入了,并且覆盖了分配空间以外的内存。 堆栈溢出:堆栈溢出是一种写入的数据超出了给堆栈分配的缓冲区大小而发生的溢出。 整型溢出:用来保存某个确定数值范围的特定数据类型或CPU寄存器,当分配 ...
分类:
其他好文 时间:
2019-03-25 14:41:19
阅读次数:
167
基于openjdk:8u171-alpine构建的java镜像,使用jstack命令打印线程的时候会提示以下错误: 使用jmap命令尝试了一下,也是一样的错误。换了一种启动方式,使用/bin/sh启动docker,然后进入docker手动启动java进程,然后再用jstack命令,就能正常打印。换了 ...
分类:
编程语言 时间:
2019-01-04 12:45:24
阅读次数:
331
virtualVM是我几年前用过的jdk自带的监控工具,能监控内存,堆栈,线程等粗略的统计信息; JProfiler是最近用的,比virtualVM要更详细,更专业,基本上覆盖了virtualVM的功能点,还有一些更细致的功能,精确到代码某一行,是个单进程java分析利器。 yourkit没有用过, ...
分类:
其他好文 时间:
2018-09-09 15:32:11
阅读次数:
262
JMX全称Java Management Extensions, 为Java应用提供管理扩展功能。在Java 5的时候引入 概念 Referering Java Opts 启动Java可以赋予JVM Machine一些参数,例如设置运行内存堆栈的大小。此处列举一些有关JMX的相关参数 例如,你需要启 ...
分类:
编程语言 时间:
2018-08-24 13:33:45
阅读次数:
160
1.启动函数功能:检索新进程命令指针,环境指针,全局变量初始化,内存堆栈初始化比如:GetCommandLineA命令指针GetStartupInfoA启动信息GetModuleHandleA执行文件基地址编译器自动加入的代码:00401020>/$55pushebp00401021|.8BECmovebp,esp00401023|.6AFFpush-100401025|.68A050400
分类:
其他好文 时间:
2018-07-27 01:24:44
阅读次数:
153