用于获取系统栈使用率的方法及装置、电子设备、存储介质制造方法及图纸

技术编号:36581039 阅读:18 留言:0更新日期:2023-02-04 17:40
本申请涉及计算机技术领域,公开一种用于获取系统栈使用率的方法,该方法包括:利用预设的初始数据将系统栈填满;获取系统栈中与初始数据不相同的栈数据的数量;根据数量确定出系统栈的使用率。由于利用预设的初始数据对系统栈进行填充,通过确定出与初始数据不相同的栈数据的数量,这样能够根据与初始数据不相同的栈数据的数量和初始数据的总数量确定出系统栈使用率,从而获取系统栈的使用情况,以便于用户采取预防措施。本申请还公开一种用于获取系统栈使用率的装置及电子设备、存储介质。存储介质。存储介质。

【技术实现步骤摘要】
用于获取系统栈使用率的方法及装置、电子设备、存储介质


[0001]本申请涉及计算机
,例如涉及一种用于获取系统栈使用率的方法及装置、电子设备、存储介质。

技术介绍

[0002]嵌入式系统经常出现因为资源不足导致的系统崩溃,这些资源包含栈,堆,内存等,其中栈尤其重要,栈是系统调用函数存储局部变量,形参的。在函数释放后,资源会自动释放,如果出现嵌套调用,递归调用,局部数组巨大等问题可能会使栈的空间急剧增大,最后导致系统崩溃,因此需要对系统栈的使用率进行实时检测,以便于用户采取预防措施,保证嵌入式系统的正常运行。
[0003]在实现本公开实施例的过程中,发现相关技术中由于无法获取系统栈的使用情况,因此不便于用户采取预防措施。

技术实现思路

[0004]为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
[0005]本公开实施例提供了一种用于获取系统栈使用率的方法及装置、电子设备、存储介质,以能够获取系统栈的使用情况。
[0006]在一些实施例中,所述用于获取系统栈使用率的方法,包括:利用预设的初始数据将系统栈填满;获取所述系统栈中与所述初始数据不相同的栈数据的数量;根据所述数量确定出所述系统栈的使用率。
[0007]在一些实施例中,所述用于获取系统栈使用率的装置包括:填充模块,被配置为利用预设的初始数据将系统栈填满;获取模块,被配置为获取所述系统栈中与所述初始数据不相同的栈数据的数量;确定模块,被配置为根据所述数量确定出所述系统栈的使用率。
[0008]在一些实施例中,所述用于获取系统栈使用率的装置包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行上述的用于获取系统栈使用率的方法。
[0009]在一些实施例中,所述电子设备包括上述的用于获取系统栈使用率的装置。
[0010]在一些实施例中,所述存储介质,存储有程序指令,所述程序指令在运行时,执行上述的用于获取系统栈使用率的方法。
[0011]本公开实施例提供的用于获取系统栈使用率的方法及装置、电子设备、存储介质,可以实现以下技术效果:通过利用预设的初始数据将系统栈填满;获取系统栈中与初始数据不相同的栈数据的数量;根据数量确定出系统栈的使用率。由于利用预设的初始数据对系统栈进行填充,通过确定出与初始数据不相同的栈数据的数量,这样能够根据与初始数据不相同的栈数据的数量和初始数据的总数量确定出系统栈使用率,从而获取系统栈的使
用情况,以便于用户采取预防措施。
[0012]以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
[0013]一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
[0014]图1是本公开实施例提供的一个用于获取系统栈使用率的方法的示意图;
[0015]图2是本公开实施例提供的一个系统栈中确定出的查找区域的示意图;
[0016]图3是本公开实施例提供的另一个系统栈中确定出的查找区域的示意图;
[0017]图4是本公开实施例提供的一个系统栈中确定出查找停止地址的示意图;
[0018]图5是本公开实施例提供的一个用于获取系统栈使用率的装置的示意图;
[0019]图6是本公开实施例提供的另一个用于获取系统栈使用率的装置的示意图。
具体实施方式
[0020]为了能够更加详尽地了解本公开实施例的特点与
技术实现思路
,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
[0021]本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
[0022]除非另有说明,术语“多个”表示两个或两个以上。
[0023]本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
[0024]术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
[0025]结合图1所示,本公开实施例提供一种用于获取系统栈使用率的方法,包括:
[0026]步骤S101,利用预设的初始数据将系统栈填满。
[0027]步骤S102,获取系统栈中与初始数据不相同的栈数据的数量。
[0028]步骤S103,根据系统栈中与初始数据不相同的栈数据的数量确定出系统栈的使用率。
[0029]采用本公开实施例提供的用于获取系统栈使用率的方法,通过利用预设的初始数据将系统栈填满;获取系统栈中与初始数据不相同的栈数据的数量;根据数量确定出系统栈的使用率。由于利用预设的初始数据对系统栈进行填充,通过确定出与初始数据不相同的栈数据的数量,这样能够根据与初始数据不相同的栈数据的数量和初始数据的总数量确定出系统栈使用率,从而获取系统栈的使用情况,以便于用户采取预防措施。
[0030]在一些实施例中,初始数据为{0xDE,0xAE,0xBE,0xEF},则初始数据{0xDE,0xAE,
0xBE,0xEF}的大小为4,由于预设的初始数据为具有特殊性的数据,能够便于将栈数据和初始数据进行区分。
[0031]可选地,获取系统栈中与初始数据不相同的栈数据的数量,包括:确定系统栈对应的第一待检测栈地址,并获取第一待检测栈地址对应的栈数据;将第一待检测栈地址对应的栈数据与初始数据进行对比,获得对比结果;根据对比结果确定查找区域;根据查找区域确定系统栈中与初始数据不相同的栈数据的数量。
[0032]可选地,确定系统栈对应的第一待检测栈地址,包括:通过计算StackTestAddress=TheStackStartAddress+(MidPatternNumber

1)
×
ThePatternSize获得第一待检测栈地址;其中,StackTestAddress为第一待检测栈地址,TheStackStartAddress为系统栈的起始地址,MidPatternNumber为系统栈的中间点的初始数据的数据组号,ThePatternSize为初始数据的大小。
[0033]可选地,通过计算
[0034]获得系统栈本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于获取系统栈使用率的方法,其特征在于,包括:利用预设的初始数据将系统栈填满;获取所述系统栈中与所述初始数据不相同的栈数据的数量;根据所述数量确定出所述系统栈的使用率。2.根据权利要求1所述的方法,其特征在于,获取所述系统栈中与所述初始数据不相同的栈数据的数量,包括:确定所述系统栈对应的第一待检测栈地址,并获取所述第一待检测栈地址对应的栈数据;将所述第一待检测栈地址对应的栈数据与所述初始数据进行对比,获得对比结果;根据所述对比结果确定查找区域;根据所述查找区域确定所述系统栈中与所述初始数据不相同的栈数据的数量。3.根据权利要求2所述的方法,其特征在于,根据所述对比结果确定查找区域,包括:在所述对比结果为所述第一待检测栈地址对应的栈数据与所述初始数据相同的情况下,将所述第一待检测栈地址确定为备选终止地址,并获取所述系统栈的起始地址;将所述起始地址到所述备选终止地址之间的系统栈区域确定为查找区域。4.根据权利要求2所述的方法,其特征在于,根据所述对比结果确定查找区域,包括:在所述对比结果为所述第一待检测栈地址对应的栈数据与所述初始数据不相同的情况下,将所述第一待检测栈地址确定为备选起始地址,并获取所述系统栈的生长方向;将从所述备选起始地址开始沿所述生长方向同向的系统栈区域确定为查找区域。5.根据权利要求4所述的方法,其特征在于,根据所述查找区...

【专利技术属性】
技术研发人员:庞启成
申请(专利权)人:海尔智家股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1