CN116701142A - 数据获取方法、装置、设备和存储介质 - Google Patents
数据获取方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN116701142A CN116701142A CN202310658322.4A CN202310658322A CN116701142A CN 116701142 A CN116701142 A CN 116701142A CN 202310658322 A CN202310658322 A CN 202310658322A CN 116701142 A CN116701142 A CN 116701142A
- Authority
- CN
- China
- Prior art keywords
- kernel
- symbol table
- kernel function
- address
- function address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 230000006870 function Effects 0.000 claims description 219
- 239000000523 sample Substances 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000013480 data collection Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种数据获取方法、装置、设备和存储介质,属于计算机技术领域,该方法可以包括读取电子设备的用户空间中的第一内核函数地址;根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。
Description
技术领域
本申请属于计算机技术领域,具体涉及一种数据获取方法、装置、设备和存储介质。
背景技术
内核符号表是用于调试和分析电子设备中操作系统的内核空间的关键资源,内核符号表包括内核函数的名称以及地址信息。
在相关技术中,操作系统的性能分析工具可以包括Simpleperf、Systrace等,该性能分析工具可以用于分析、调试操作系统性能。然而,在没有根(root)权限的情况下,性能分析工具是无法访问内核空间中的内核符号表的,导致无法实现分析、调试操作系统性能。
发明内容
本申请实施例的目的是提供一种数据获取方法、装置、设备和存储介质,能够实现在没有根权限时,也能分析、调试操作系统性能。
第一方面,本申请实施例提供了一种数据获取方法,包括:
读取电子设备的用户空间中的第一内核函数地址;
根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;
响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;
通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。
第二方面,本申请实施例提供了一种数据获取装置,包括:
读取模块,用于读取电子设备的用户空间中的第一内核函数地址;
计算模块,用于根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;
采集模块,用于响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;
解析模块,用于通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。
第三方面,本申请实施例提供了一种电子设备,电子设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如第一方面所示的数据获取方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如第一方面所示的数据获取方法的步骤。
第五方面,本申请实施例提供了一种芯片,芯片包括处理器和显示接口,显示接口和处理器耦合,处理器用于运行程序或指令,实现如第一方面所示的数据获取方法的步骤。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所示的数据获取方法的步骤。
在本申请实施例中,通过读取电子设备的用户空间中的第一内核函数地址,并根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据,以及通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。这样,能够在没有根权限状态下,通过电子设备中的性能分析工具和用户空间中的第二内核符号表中的内核函数地址,对性能分析工具采集到的第一数据进行解析,得到第二数据,从而实现在没有根权限状态下,也能分析、调试操作系统性能的功能。
附图说明
图1为本申请实施例提供的一种数据获取方法的流程图;
图2为本申请实施例提供的一种数据获取装置的结构示意图;
图3为本申请实施例提供的一种电子设备的结构示意图;
图4为本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
为了解决相关技术中的问题,下面结合附图1,通过具体的实施例及其应用场景对本申请实施例提供的数据获取方法进行详细地说明。
首先,结合图1对本申请实施例提供的一种数据获取方法进行详细说明。
图1为本申请实施例提供的一种数据获取方法的流程图。
如图1所示,本申请实施例提供的数据获取方法可以应用于电子设备,该数据获取方法可以包括如下步骤:
步骤110,读取电子设备的用户空间中的第一内核函数地址;
步骤120,根据所述第一内核函数地址和第一内核符号表计算得到第二内核符号表,所述第一内核符号表包括内核函数名称和地址偏移量,所述第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;
步骤130,响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;
步骤140,通过所述性能分析工具和所述第二内核符号表对所述第一数据进行解析得到第二数据。
这样,通过读取用户空间的第一内核函数地址,并计算出用户空间中的第二内核符号表,如此,能够在没有根权限状态下,通过电子设备中的性能分析工具和用户空间中的第二内核符号表中的内核函数地址,对性能分析工具采集到的第一数据进行解析,得到第二数据,从而实现在没有根权限状态下,也能分析、调试操作系统性能的功能。
在对上述步骤进行示例性说明之前,需要对本申请实施例中的的技术用语进行说明。
本申请实施例中的虚拟文件系统(Sysfs),用于向用户空间提供内核空间的信息和系统调用接口,Sysfs可以设置在/sys目录文件,用户空间(进一步地,用户空间中的各个应用)可以通过访问该/sys目录文件中的文件,以与内核空间进行通信。
本申请实施例中的内核探针(kprobe),是操作系统(如Linux)的内核空间提供的动态跟踪工具,可以在代码运行时进行函数调试和性能分析。kprobe可以在任何Linux内核空间执行前或执行后执行自定义的处理器函数,以此获取函数的输入参数、返回值和执行时间等信息。
本申请实施例中的内核空间和用户空间,是操作系统中两个基本的空间概念。内核空间是电子设备的操作系统中内核运行时使用的地址空间,操作系统内核代码、数据和驱动程序等运行在内核空间。内核空间拥有系统的硬件资源和物理内存,可以访问内存和硬件设备。内核空间的程序具有最高的权限和最高的优先级,可以访问、修改任何内存位置和系统资源。用户空间,是操作系统分配给各个应用程序运行的地址空间,各个应用程序运行在用户空间。用户程序不能直接访问内核空间和系统资源,需要通过内核空间提供的系统调用接口来访问。内核空间和用户空间在物理内存中是相隔离的,每个空间访问的内存地址是不同的。这样可以保证内核程序不被用户程序破坏,同时也保护了系统的安全性和稳定性。
基于此,下面对上述步骤进行详细说明,具体如下所示。
首先,涉及步骤110,在一种或多种可能的实施例中,该步骤110具体可以包括:
通过目标应用程序,读取电子设备的用户空间中的第一内核函数地址,其中,目标应用程序为运行在用户空间中的应用程序。基于此,在另一种或多种可能的实施例中,为了保证内核探针可以探测到内核空间中的内核函数地址,应保证在读取第一内核函数地址之前被调用过一次,以配置内核探针和内核空间中的内核函数地址的对应关系,基于此,在步骤110之前,该数据获取方法还可以包括:
步骤1501,在电子设备初始化过程中,获取电子设备中的内核探针,从第三内核符号表中读取第一内核函数地址;
步骤1502,在用户空间中保存所述第一内核函数地址,所述第三内核符号表包括内核函数名称和在内核空间中的内核函数地址。
示例性地,在启动电子设备或在电子设备初始化过程中,操作系统将初始化sysfs,定义并注册一个内核探针kprobe,kprobe是一个结构体,其字段symbol_name存储了内核函数名称。当触发执行kprobe时,内核探针kprobe的字段addr获取与内核函数名称对应的内核函数地址,即第一内核函数地址,并将其第一内核函数地址保存在虚拟文件系统提供的通信节点中,以便后续使用。这里,在通过内核探针探测内核控件中的内核函数地址的过程中,是具有ROOT权限的,此时,无需额外申请ROOT权限。
需要说明的是,第一内核函数地址可以是内核空间中一个内核函数地址的副本,其通过内核探针获取第一内核函数地址的过程,可以理解为是从内核空间中复制内核函数地址的过程。当然,第一内核函数地址可以是内核空间中至少两个内核函数地址的副本,即内核探针中的字段symbol_name存储了至少两个内核函数名称,如内核函数名称1和内核函数名称2,此时,若用户控件中配置了内核探针和多个内核函数的对应关系,即内核探针和内核函数1、内核函数2的对应关系,那么,第一内核函数地址可以为两个,即与内核函数1对应的内核函数地址,以及与与内核函数2对应的内核函数地址。如此,本申请实施例中的第一内核函数地址可以为至少一个。
如此,通过内核探针获取内核空间的第一内核符号表中一个内核函数地址即第一内核函数地址,以便后期计算第一内核符号表的全部内核函数地址,保证了之后simpleperf无需访问内核空间即可为simpleperf提供了精确、完整的内核空间的第一内核符号表的信息。
基于此,在该步骤1502之前,该数据获取方法还可以包括:
在所述用户空间中建立通信节点,所述通信节点用于所述内核空间和所述用户空间的数据传输。
示例性地,可以在电子设备启动或电子设备初始化的过程中,在sys/目录文件中创建一个通信节点,该通信节点可以文件的形式存在。用户空间可以通过该通信节点,实现与内核空间的通信。以及,定义一个kobject_attribute结构体,具体地,该结构体可以包括一个回调函数show,可以通过回调函数show向用户空间(进一步地,用户控件中的目标应用程序)传输通信节点中的第一内核函数地址,或者向用户空间(进一步地,用户控件中的目标应用程序)发送提示信息,该提示信息用于提示用户空间(进一步地,用户控件中的目标应用程序)读取通信节点中的第一内核函数地址。
接着,涉及步骤120,在一种或多种可能的实施例中,在执行步骤120之前,本申请实施例需要经过至少一次root的过程,以获取内核空间中存储的内核函数地址,并计算内核空间中存储的内核函数地址中每两个内核函数地址之间的关系,以便在用户空间存储第一内核符号表。
基于此,在步骤120之前,该数据获取方法还可以包括:
步骤160,根据所述第一内核函数地址,生成所述第一内核符号表,其中,所述第一内核符号表存储于所述用户空间。
进一步地,上述步骤160具体可以包括:
步骤1601,在具有ROOT权限的情况下,从第三内核符号表中读取N个第二内核函数地址;其中,第三内核符号表为内核空间中存储的内核符号表;
步骤1602,计算所述N个第二内核函数地址中每个第二内核函数地址与所述第一内核函数地址的差值,得到所述每个第二内核函数地址与所述第一内核函数地址的地址偏移量,N为正整数;
步骤1603,基于所述每个第二内核函数地址与所述第一内核函数地址的地址偏移量,生成所述第一内核符号表。
示例性地,在具有ROOT权限的情况下,从内核空间中读取N个第二内核函数地址,如第二内核函数地址1、第二内核函数地址2和第二内核函数地址3,由于第一内核函数地址是内核空间中的内核函数地址的副本,即其第一内核函数地址与N个第二内核函数地址为同一内核版本下的地址,所以,可以根据第二内核函数地址中每个第二内核函数地址与所述第一内核函数地址的差值,得到所述每个第二内核函数地址相对于所述第一内核函数地址的地址偏移量,比如第二内核函数地址1与第一内核函数地址的差值为10,那么,可以视为第二内核函数地址1相对于所述第一内核函数地址的地址偏移量为10,同理,第二内核函数地址2与第一内核函数地址的差值为-5,那么,可以视为第二内核函数地址2相对于所述第一内核函数地址的地址偏移量为-5,如此,即可以得到包括每个第二内核函数地址与所述第一内核函数地址的地址偏移量的第一内核符号表。
需要说明的是,由于每次重启电子设备或者电子设备中操作系统更新时,第三内核符号表中的内核函数地址都是变化的,但第三内核符号表中内核函数地址之间的排列顺序是相对不变的,因此,该第一内核符号表的作用是保存第三内核符号表中每两个内核函数地址之间的地址偏移量。
基于此,本申请实施例中的所述第一内核符号表、第二内核符号表、第三内核符号表中的内核函数名称和排列顺序相同。其中,本申请实施例中的第二内核符号表和第三内核符号表应属于同一个内核版本,第二内核符号表可以理解为是在用户空间中复原的内核空间中的第三内核符号表,如此,第二内核符号表和第三内核符号表中的内核函数地址和内核函数地址的排列顺序也相同。
再者,涉及步骤130,在一种或多种可能的实施例中,其数据采集命令可以为目标应用程序触发性能分析工具在Linux内核空间执行数据采集动作的命令,第一数据包括在Linux内核空间执行数据采集动作前或执行数据采集动作后执行自定义的处理器函数名称。
需要说明的是,在本申请实施例中并不限定步骤130与步骤110和步骤120的先后顺序。
然后,涉及步骤140,本申请实施例中的第二数据可以包括上述处理器函数的输入参数、返回值和执行时间等数据。
基于此,在一种可能的实施例中,该步骤140具体包括:
在非root权限的情况下,通过所述性能分析工具和第二内核符号表,获取与所述第一数据对应的内核函数地址;
访问与所述第一数据对应的内核函数地址,以对所述第一数据进行解析,得到第二数据。
示例性地,若上述第一数据的处理器函数名称是lookup,则可以通过用户空间中存储的第二内核函数表,获取其lookup的内核函数地址ffffffe8b12f53b0,如此,访问ffffffe8b12f53b0即可获取处理器函数的输入参数、返回值和执行时间等数据。
这里,相关技术中的simpleperf进程仅可以在root的情况下,通过直接访问内核空间中的内核符号表,以获取内核函数地址,而在本申请实施例提供的数据获取方法中,无需访问内核空间即可实现对内核函数地址的获取,如此,能够在没有根权限状态下,也能实现分析、调试操作系统性能的功能。
综上,本申请实施例提供的数据获取方法,通过读取电子设备的用户空间中的第一内核函数地址,并根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据,以及通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。这样,能够在没有根权限状态下,通过电子设备中的性能分析工具和用户空间中的第二内核符号表中的内核函数地址,对性能分析工具采集到的第一数据进行解析,得到第二数据,从而实现在没有根权限状态下,也能分析、调试操作系统性能的功能。
以及,由于本申请提供的数据处理方法,不需要根权限,所以不需要测试人员通过USB数据线将电子设备连接到计算机(PC)端,降低了测试人员操作的复杂度。
本申请实施例提供的数据获取方法,执行主体可以为数据获取装置。本申请实施例中以数据获取装置执行数据获取方法为例,说明本申请实施例提供的数据获取的装置。
基于相同的发明构思,本申请还提供了一种数据获取装置。具体结合图2进行详细说明。
图2为本申请实施例提供的一种数据获取装置的结构示意图。
如图2所示,该数据获取装置20具体可以包括:
读取模块201,用于读取电子设备的用户空间中的第一内核函数地址;
计算模块202,用于根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;
采集模块203,用于响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;
解析模块204,用于通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。
下面对该数据获取装置20进行详细说明,具体如下所示:
在一个或者多个可能的实施例中,本申请实施例中的数据获取装置20还包括生成模块;其中,
生成模块,用于根据第一内核函数地址,生成第一内核符号表,其中,第一内核符号表存储于用户空间。
在另一个或者多个可能的实施例中,读取模块201还用于,在具有ROOT权限的情况下,从第三内核符号表中读取N个第二内核函数地址;
计算模块202还用于,计算N个第二内核函数地址中每个第二内核函数地址与第一内核函数地址的差值,得到每个第二内核函数地址与第一内核函数地址的地址偏移量,N为正整数;
生成模块,具体用于基于每个第二内核函数地址与第一内核函数地址的地址偏移量,生成第一内核符号表。
在又一个或者多个可能的实施例中,本申请实施例中的数据获取装置20还可以包括保存模块;其中,
读取模块201还用于,在电子设备初始化过程中,通过电子设备中的内核探针,从第三内核符号表中读取第一内核函数地址;
保存模块,用于在用户空间中保存第一内核函数地址,第三内核符号表包括内核函数名称和在内核空间中的内核函数地址。
在再一个或者多个可能的实施例中,第一内核符号表、第二内核符号表、第三内核符号表中的内核函数名称和排列顺序相同。
本申请实施例中的数据获取装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的数据获取装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的数据获取装置能够实现图1所示的数据获取方法实施例实现的各个过程,达到相同的技术效果,为避免重复,这里不再赘述。
基于此,本申请实施例提供的数据获取装置,通过读取电子设备的用户空间中的第一内核函数地址,并根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据,以及通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。这样,能够在没有根权限状态下,通过电子设备中的性能分析工具和用户空间中的第二内核符号表中的内核函数地址,对性能分析工具采集到的第一数据进行解析,得到第二数据,从而实现在没有根权限状态下,也能分析、调试操作系统性能的功能。
可选的,如图3所示,本申请实施例还提供一种电子设备30,包括处理器301和存储器302,存储器302上存储有可在处理器301上运行的程序或指令,该程序或指令被处理器301执行时实现上述数据获取方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
图4为本申请实施例提供的一种电子设备的硬件结构示意图。
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、处理器410等部件。
本领域技术人员可以理解,电子设备400还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,在本申请实施例中,处理器410,用于读取电子设备的用户空间中的第一内核函数地址。处理器410还用于,根据第一内核函数地址和第一内核符号表计算得到第二内核符号表,第一内核符号表包括内核函数名称和地址偏移量,第二内核符号表包括内核函数名称和在内核空间中的内核函数地址。处理器410还用于,响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据。处理器410还可以用于,通过性能分析工具和第二内核符号表对第一数据进行解析得到第二数据。
下面对该电子设备400进行详细说明,具体如下所示:
在一个或者多个可能的实施例中,本申请实施例中的处理器410还可以用于,根据第一内核函数地址,生成第一内核符号表,其中,第一内核符号表存储于用户空间。
在另一个或者多个可能的实施例中,本申请实施例中的处理器410还用于,在具有ROOT权限的情况下,从第三内核符号表中读取N个第二内核函数地址;计算N个第二内核函数地址中每个第二内核函数地址与第一内核函数地址的差值,得到每个第二内核函数地址与第一内核函数地址的地址偏移量,N为正整数;基于每个第二内核函数地址与第一内核函数地址的地址偏移量,生成第一内核符号表。
在又一个或者多个可能的实施例中,本申请实施例中的处理器410还可以用于,在电子设备初始化过程中,通过电子设备中的内核探针,从第三内核符号表中读取第一内核函数地址;
存储器409,用于在用户空间中保存第一内核函数地址,第三内核符号表包括内核函数名称和在内核空间中的内核函数地址。
在再一个或者多个可能的实施例中,本申请实施例中的第一内核符号表、第二内核符号表、第三内核符号表中的内核函数名称和排列顺序相同。
应理解的是,输入单元404可以包括图形处理器(Graphics Processing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图像或视频的图像数据进行处理。显示单元406可包括显示面板,可以采用液晶显示器、有机发光二极管等形式来配置显示面板。用户输入单元407包括触控面板4071以及其他输入设备4072中的至少一种。触控面板4071,也称为触摸屏。触控面板4071可包括触摸检测装置和触摸显示器两个部分。其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量显示按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器409可用于存储软件程序以及各种数据,存储器409可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器409可以包括易失性存储器或非易失性存储器,或者,存储器409可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器409包括但不限于这些和任意其它适合类型的存储器。
处理器410可包括一个或多个处理单元;可选的,处理器410集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线显示信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
本申请实施例提供的电子设备能够实现上述方法实施例实现的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述数据获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。其中,可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
另外,本申请实施例另提供了一种芯片,芯片包括处理器和显示接口,显示接口和处理器耦合,处理器用于运行程序或指令,实现上述数据获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述数据获取方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (12)
1.一种数据获取方法,其特征在于,包括:
读取电子设备的用户空间中的第一内核函数地址;
根据所述第一内核函数地址和第一内核符号表计算得到第二内核符号表,所述第一内核符号表包括内核函数名称和地址偏移量,所述第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;
响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;
通过所述性能分析工具和所述第二内核符号表对所述第一数据进行解析得到第二数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第一内核函数地址,生成所述第一内核符号表,其中,所述第一内核符号表存储于所述用户空间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一内核函数地址,生成所述第一内核符号表,包括:
在具有ROOT权限的情况下,从第三内核符号表中读取N个第二内核函数地址;
计算所述N个第二内核函数地址中每个第二内核函数地址与所述第一内核函数地址的差值,得到所述每个第二内核函数地址与所述第一内核函数地址的地址偏移量,N为正整数;
基于所述每个第二内核函数地址与所述第一内核函数地址的地址偏移量,生成所述第一内核符号表。
4.根据权利要求1所述的方法,其特征在于,所述读取电子设备的用户空间中的第一内核函数地址之前,还包括:
在所述电子设备初始化过程中,通过所述电子设备中的内核探针,从第三内核符号表中读取第一内核函数地址;
在用户空间中保存所述第一内核函数地址;
其中,所述第三内核符号表包括内核函数名称和在内核空间中的内核函数地址。
5.根据权利要求3或4所述的方法,其特征在于,所述第一内核符号表、第二内核符号表、第三内核符号表中的内核函数名称和排列顺序相同。
6.一种数据获取装置,其特征在于,包括:
读取模块,用于读取电子设备的用户空间中的第一内核函数地址;
计算模块,用于根据所述第一内核函数地址和第一内核符号表计算得到第二内核符号表,所述第一内核符号表包括内核函数名称和地址偏移量,所述第二内核符号表包括内核函数名称和在内核空间中的内核函数地址;
采集模块,用于响应于数据采集命令,通过性能分析工具进行数据采集得到第一数据;
解析模块,用于通过所述性能分析工具和所述第二内核符号表对所述第一数据进行解析得到第二数据。
7.根据权利要求6所述的装置,其特征在于,所述数据获取装置还包括生成模块;其中,
所述生成模块,用于根据所述第一内核函数地址,生成所述第一内核符号表,其中,所述第一内核符号表存储于所述用户空间。
8.根据权利要求7所述的装置,其特征在于,所述读取模块还用于,在具有ROOT权限的情况下,从第三内核符号表中读取N个第二内核函数地址;
所述计算模块还用于,计算所述N个第二内核函数地址中每个第二内核函数地址与所述第一内核函数地址的差值,得到所述每个第二内核函数地址与所述第一内核函数地址的地址偏移量,N为正整数;
所述生成模块,具体用于基于所述每个第二内核函数地址与所述第一内核函数地址的地址偏移量,生成所述第一内核符号表。
9.根据权利要求6所述的装置,其特征在于,所述数据获取装置还包括保存模块;其中,
所述读取模块还用于,在所述电子设备初始化过程中,通过所述电子设备中的内核探针,从第三内核符号表中读取第一内核函数地址;
所述保存模块,用于在用户空间中保存所述第一内核函数地址;
其中,所述第三内核符号表包括内核函数名称和在内核空间中的内核函数地址。
10.根据权利要求8或9所述的装置,其特征在于,所述第一内核符号表、第二内核符号表、第三内核符号表中的内核函数名称和排列顺序相同。
11.一种电子设备,其特征在于,包括:处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-5任一项所述的数据获取的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-5任一项所述的数据获取的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310658322.4A CN116701142A (zh) | 2023-06-05 | 2023-06-05 | 数据获取方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310658322.4A CN116701142A (zh) | 2023-06-05 | 2023-06-05 | 数据获取方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116701142A true CN116701142A (zh) | 2023-09-05 |
Family
ID=87842727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310658322.4A Pending CN116701142A (zh) | 2023-06-05 | 2023-06-05 | 数据获取方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116701142A (zh) |
-
2023
- 2023-06-05 CN CN202310658322.4A patent/CN116701142A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7165170B2 (en) | System and method for firmware to export pre-boot data into the operating system runtime environment | |
CN111723002A (zh) | 一种代码调试方法、装置、电子设备及存储介质 | |
CN114780615A (zh) | 错误码管理方法及其装置 | |
CN110765085A (zh) | 日志信息写入方法、系统、存储介质及移动终端 | |
CN112684965A (zh) | 动态壁纸状态变更方法、装置、电子设备及存储介质 | |
CN111753330A (zh) | 数据泄露主体的确定方法、装置、设备和可读存储介质 | |
CN115794583A (zh) | 一种内核分析方法及装置 | |
CN116701142A (zh) | 数据获取方法、装置、设备和存储介质 | |
CN114489698A (zh) | 应用程序安装方法和装置 | |
CN114070892A (zh) | 数据传输方法和装置 | |
CN112073505B (zh) | 在云服务器上进行卸载的方法、控制装置、存储介质 | |
CN113867701A (zh) | 一种容器对象实例化方法、装置、存储介质及电子设备 | |
CN108509223B (zh) | 一种数据处理方法、装置、系统及存储介质 | |
CN113962316A (zh) | 模型训练方法、装置及电子设备 | |
CN113110846A (zh) | 一种环境变量的获取方法及装置 | |
CN112364268A (zh) | 资源获取方法、装置、电子设备及存储介质 | |
CN113139190A (zh) | 程序文件检测方法、装置、电子设备及存储介质 | |
CN113765731A (zh) | 信息处理方法、装置及计算机可读存储介质 | |
US11500759B2 (en) | Information processing system, information processing method, and development apparatus | |
CN116627238A (zh) | 应用程序的运行方法、电子设备及可读存储介质 | |
CN116450439A (zh) | 查找表的测试方法、装置及电子设备 | |
CN111583351B (zh) | 图片生成方法以及装置 | |
CN117850820A (zh) | 应用安装方法、装置及相关产品 | |
CN107688745B (zh) | 处理、生成内核镜像的方法、内核初始化方法、装置和设备 | |
CN116662136A (zh) | 数据采集方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |