自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于 _resetstkoflw

当从 stack overflow exception(c00000fd) 恢复的时候需要调用 _resetstkoflw.     如果发生了 stack overflow (c00000fd) 异常, 而这个函数没有被调用, 那么就没有 guard page (PAGE_GUARD) 了;    下一次 stack overflow 时, 进程不会产生 stack overflow

2012-12-26 19:51:55 712

原创 Stack overflow

Stack overflow - code c00000fd 当 stack 低地址溢出要注意    1) 通过捕获异常代码为 EXCEPTION_STACK_OVERFLOW 的异常.    2) 要明确这时候 stack 出了问题, 也就是说使用 stack 的任何操作都可能挂掉 比如 printf() 等       如果要输出相对可以接受的是使用 OutputDebugStri

2012-12-26 19:46:04 415

原创 stack 扩展机制

windows中,每个线程都关联一个stack,stack的默认大小是1M,用于存放临时变量,函数参数,返回地址等。但是当一个线程开始运行的时候不是其相关stack的内存就真正被提交,因为如果一个进程有10个线程,那么如果这10个线程的stack的内存都被提交,那么虚拟内存就占用了10M,就需要想对应的页表项等开销,而且这10M到底是否被真的使用还是个未知数,所以系统的策略是只提交几个页面,然

2012-12-26 19:43:10 368

原创 LoadLibrary 失败 0x000001e7 Attempt to access invalid address

现象:LoadLibrary 偶尔会失败,返回值   NULL, @err,hr     0x000001e7 Attempt to access invalid address. 原因在于DLL,当DLL link 的时候指定了 /FIXED   Property Pages\Linker\Advanced | Fixed Base Address : Image must be loade

2012-12-26 19:16:11 1254

原创 使用 __declspec(dllimport) 能够优化对DLL导出函数的调用.

使用 __declspec(dllimport) 能够优化对DLL导出函数的调用.        > 不使用时:        [DLL]        #ifdef THEDLL_EXPORTS        #define THEDLL_API __declspec(dllexport)        #else        #define THEDLL_API

2012-12-27 22:22:17 349

翻译 CSS 中 Position relative 和 absolute区别

Relative PositioningA relative positioned element is positioned relative to its normal position.The reserved space for the element is still preserved in the normal flow.relative 位置是相对元

2012-12-26 20:03:23 335

原创 Win8 UT 上的小变动

Win8 UT 的时候发现GetRuntimeMethod()无法访问一个class的private方法,只用通过IEnumerableclass CForTest{    private int Increase1(int i) { return ++i; }    public int Increase2(int i) { return ++i; }}

2012-12-26 20:02:25 352

原创 空指针带来的AV异常.

故名思意, 如果一个指针是NULL, (NullPtr == NULL), 则 NullPtr->Method() 会产生异常.        但是根据被调用函数不同, 分为 NullPtr->Member_Method() 和 NullPtr->Virtual_Method()    //        // 例子    //    class AA    {

2012-12-26 19:56:49 1884

原创 IA32 architecture 学习笔记 (五)<chapter 2 System Architecture Overview>

系统架构概况所有IA32处理器power-up 或 reset 之后进入实模式,然后软件(windows)开始初始化,切换到保护模式。IA32体系结构(自从Intel386开始)为OS和系统级软件提供了扩展支持:实模式、保护模式、虚拟8086模式和系统管理模式。IA32体系结构为操作系统提供了广泛的支持,包括以下几个部

2012-02-12 18:20:43 535

原创 IA32 architecture 学习笔记 (四)

IO端口 (Input / Output)除了和外存(磁盘,光盘等)传输数据,IA32处理器还可以和 IO 端口 (I/O ports)传输数据。IO端口是构建在系统硬件上的电子电路,该电路能够对处理器的控制、数据和编址进行译码。IO端口和外围设备进行通信,可能是输入端口、输出端口或者双向端口。有的 IO端口用来传输数据(如:给设备寄存器发送数据),有的是用来控制外围设备(如:控制磁盘控制

2011-12-31 22:38:45 774

原创 IA32 architecture 学习笔记 (三)

中断和异常(处理器层面)在软件层面,经常碰到两种异常:异步异常:SEH 结构化异常, 由CPU产生。 又叫做:硬异常;同步异常:由程序显示调用RaiseException产生,C++异常属于这种异常(throw)。又叫做:软件异常;在硬件处理器层面,处理器提供了两种机制用来中断一个程序的正常执行:中断:异步事件,一般由I/O设备触发;异常:同步事件,当处理器执行一个指令

2011-11-29 21:23:26 686

原创 Windbg之"查看内存"命令

查看局部变量dv /i /V查看thisdv thisdt thisdt @@C++(this->m_value)// 都行 查看静态对象1) x // 得到对象地址.2) dt type 对象地址.

2011-11-23 08:40:45 1117

原创 IA32 architecture 学习笔记 (二)

指针数据类型在非64bits模式下,体系结构定义了两种指针:near pointer :在一个段中32bits (or 16bits) 的offset。near pointer被用来 flat memory 模式。(比如在win32保护模式下Ring3,用户看到是flag memory,DS段描述符指定的DS段基地址是0x00000000, limit是整个4G,所以nea

2011-11-22 23:39:19 981

原创 IA32 architecture 学习笔记 (一)

IA32支持最基本的三个操作模式 (modes of operations):1)Real-Address Mode(当 CPU 启动或者重启,CPU就处于real-address mode.)2)Protected Mode3) System management mode (SMM)操作模式决定哪些指令和哪些体系结构的特性可以被使用。基本执行

2011-11-12 19:25:53 2478

Android开发精要(完整书签版)

Android开发精要(完整书签版)

2016-03-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除