This application provides a task stack overflow monitoring method, the method includes: the function stack operation state detection task; if the function stack operating state as a function of the default stack operation, read the task stack address will end; the top of the stack address and the difference between the total length of task stack base address minus task the stack is compared; according to the comparison of monitoring results of task stack overflow. Compared with the existing technology solutions, this scheme does not occupy additional memory space to set up read-only memory area, real-time monitoring task stack overflow phenomenon, and will not omit the phenomenon of task stack overflow.
【技术实现步骤摘要】
一种任务栈溢出监测方法及系统
本申请涉及计算机领域,特别是涉及一种任务栈溢出监测方法及系统。
技术介绍
在操作系统中,如Linux操作系统,为了提高操作系统运行效率,所有任务会共享同一物理地址空间,只有任务栈占用的内存空间是独立的,任何任务之间没有内存地址保护机制。一个任务栈的总长度是有限的,如果太长会导致内存空间浪费,如果太短可能导致任务栈溢出(任务栈溢出也称栈顶越界)。任务栈溢出意味着,在任务执行过程中将读写用于其它功能的内存内容。其它功能的内存内容有可能是本任务使用的内存内容,也有可能是其它任务使用的内存内容,从而导致发生各种异常现象,如任务崩溃、死机等。现有的技术方案是确定一块位于任务栈末端的内存空间,将该内存空间设置为只读属性;该内存空间只能进行读操作,当任务执行过程中对该内存空间进行写操作时,会触发操作系统的地址访问异常中断;当监听到地址访问异常中断时,判断产生地址访问异常中断的任务是否任务栈溢出。现有的技术方案缺点是:每个函数占用的内存空间中,并不是每个字节都会进行读写操作,有相当一部分内存内容是预留的,不会发生读写操作;即使是用于存储局部变量的空间,由于函数参数或者外部条件不一样,也不一定会进行写操作。如果任务栈末端的只读内存区恰好属于预留内存区,或者在一定条件下函数没有对只读内存区进行写操作,即使函数发生了任务栈溢出,也不会触发地址访问异常中断,此时任务栈末端内存区及只读内存区以外的内存区域已经被写入了错误数据。当有其它任务再次访问已经被写成错误数据的内存时,才会出现功能异常,并不能实时监测任务栈溢出现象,会漏报任务栈溢出现象。专利技术内 ...
【技术保护点】
一种任务栈溢出监测方法,其特征在于,所述方法包括:检测任务中函数栈操作状态;若所述函数栈操作状态为预设的函数栈操作,则读取任务栈栈底地址;将当前栈顶地址与所述任务栈栈底地址减去任务栈总长度得到的差值进行比较;根据比较结果监测任务栈溢出。
【技术特征摘要】
1.一种任务栈溢出监测方法,其特征在于,所述方法包括:检测任务中函数栈操作状态;若所述函数栈操作状态为预设的函数栈操作,则读取任务栈栈底地址;将当前栈顶地址与所述任务栈栈底地址减去任务栈总长度得到的差值进行比较;根据比较结果监测任务栈溢出。2.根据权利要求1所述的方法,其特征在于,所述若所述函数栈操作状态为预设的函数栈操作,则读取任务栈栈底地址,包括:当前函数栈操作状态为压栈操作时,读取任务栈栈底地址。3.根据权利要求2所述的方法,其特征在于,所述当前函数栈操作状态为压栈操作时,读取任务栈栈底地址,包括:当前函数栈操作状态为压栈操作时,并且在函数执行压栈操作指令之后读取任务栈栈底地址。4.根据权利要求1所述的方法,其特征在于,所述根据比较结果监测任务栈溢出,包括:若所述任务栈栈底地址减去任务栈总长度得到的差值大于当前栈顶地址,则发生任务栈溢出。5.根据权利要求4所述的方法,其特征在于,还包括:发生任务栈溢出时,记录现象异常信息并抛出异常,终止任务运行。6.一种任务栈溢出监测系统,其特...
【专利技术属性】
技术研发人员:符志清,李艳华,
申请(专利权)人:杭州迪普科技股份有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。