近日在写一个简易的操作系统,经常受到bug的偷袭,由于开发OS的特殊性,一些常规的debug手段用不上,于是打算记录下自己的debug过程,用于交流。
Problem:
在做图层叠加时,引入结构体SHTCTL进行各个图层的管理,但遭遇了黑屏,原因可能来自于图层管理模块、内存管理模块或其他未知原因。
Solution:
恢复到上次不黑屏的版本(即去掉图层管理模块),果然可以进行显示。在此基础...
分类:
其他好文 时间:
2014-06-05 07:16:45
阅读次数:
199
本系列的第三篇文章主要来介绍与共享物理页面相关的两个函数。
//在发生缺页异常的时,首先看看能否与运行同一个文件的其他进程进行页面共享处理。该函数首先判断系统中是否有另外进程也在运行与当前进程一样的执行文件。若有,则在系统当前任务中找寻这样的任务。若找到了这样的任务就尝试与其共享指定地址处的页面。判断系统中是否有另一个进程也在执行同一个可执行文件的方法是利用进程任务数据结构中的executabl...
分类:
系统相关 时间:
2014-06-05 03:47:01
阅读次数:
350
缺页处理程序//下面函数将一页内存页面映射到指定线性地址处,它返回页面的物理地址
//把一物理内存页面映射到线性地址空间指定处或者说把线性地址空间指定地址address处的页面映射到主内存区页面page上。主要工作是在相关也目录项和页表项中设置指定页面的信息。在处理缺页异常函数do_no_page中会调用这个函数。
参数:address--线性地址;page--是分配的主内存区中某一页面指针
st...
分类:
系统相关 时间:
2014-06-04 22:01:30
阅读次数:
433
本文主要介绍Linux0.12内核memory.c中的函数
1.void free_page(unsigned long addr)
//释放物理地址addr处的一页内存。用于free_page_tables()函数
void free_page(unsigned long addr)
{
//首先判定给定物理地址的合理性。如果物理地址addr小于内存低端1M,对此不///予处理。如果a...
分类:
系统相关 时间:
2014-06-04 21:13:18
阅读次数:
439
内存管理 2014年5月21日僵尸对象:指向已经删除的对象内存空间
分类:
移动开发 时间:
2014-06-02 17:24:40
阅读次数:
542
java 中的内存分为四个部分:stack(栈),heap(堆),data segment, codesegment。
stack(栈):存放基本类型的数据和对象的引用,即存放局部变量。
heap(堆)存放 new 出来的东西。
data segment(数据区):分为静态区和常量区(常量池):
静态区(static segment):存放在对象中用 static 定义的静态成员(即静态变量,如果该静态变量是基本类型变量,则将变量名和值都存入静态区中,如果是引用类型则指向 new 出来的对象。
...
分类:
编程语言 时间:
2014-06-01 15:09:19
阅读次数:
348
类型、值和变量
数据类型分类:
原始类型(primitive type):数字 字符串 布尔值 null undefined
对象类型(object type): 对象是属性的集合,每个属性都由“名/值”对构成。
javascript解释器有自己的内存管理机制,可以自动对内存进行垃圾回收。
3.1数字
javascript不区分浮点和整型,所有的数字都是按照浮点型处理。
3....
分类:
编程语言 时间:
2014-06-01 13:11:04
阅读次数:
362
上一章 我们分析了Cocos2d-x的内存管理,主要解剖了
Ref、PoolManager、AutoreleasePool这三个类,了解了对象是如何自动释放的机制。之前有一个类
Node经常出现在各种场合,不是做为参数就是做为返回值,那么这一章节我们就去看看这个Node类到底在Cocos2d-x里....
分类:
其他好文 时间:
2014-05-31 08:04:28
阅读次数:
355
1.
内存管理基础知识http://www.cnblogs.com/xingfuzzhd/p/3485924.html 1.
mImageView.setImageResource(R.drawable.my_image); 这段代码会调用
BitmapFactory.decodeStream() ...
分类:
移动开发 时间:
2014-05-31 03:00:44
阅读次数:
394
一、Android的体系结构1.1体系结构从下往上进行层概述:Linux内核层:该层主要的作用是:对系统进行管理例如:驱动管理,电源管理,进程管理,安全管理,内存管理等等。硬件抽象层:该层主要的作用是:对Linux底层实现进行屏蔽,向上提供接口,该层不开源,主要是为了维护商家的利益,但是会影响系统的...
分类:
移动开发 时间:
2014-05-31 01:08:13
阅读次数:
516