An abnormal information processing method, device, computer device and storage medium

By splitting the exception address stack information into a single-line subaddress stack information and calling the stack resolution service to restore when necessary, the delay and concurrency problems of Flutter application crash stack restoration are solved, and the restore speed and concurrency capabilities are improved.

CN114706705BActive Publication Date: 2025-07-25DOUYIN VISION CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210357017.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-04-06
Publication Date
2025-07-25
Estimated Expiration
2042-04-06

AI Technical Summary

Technical Problem

The existing technology has problems of delay and inability to large-scale concurrency when restoring the crash stack of Flutter applications, mainly because each restore requires a new process to be created and the content of the cropped file is loaded.

Method used

By splitting the exception address stack information into a single-line subaddress stack information, and calling the stack resolution service to restore when no corresponding parsed address information is found in multiple cache spaces, the hash algorithm is used to select the target instance for processing, reducing computing resource consumption and process creation.

Benefits of technology

Improve stack restoration speed, realize large-scale concurrent operations, solve the problem of stack restoration latency, and reduce computing resource consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114706705B_ABST
    Figure CN114706705B_ABST
Patent Text Reader

Abstract

The present disclosure provides an abnormal information processing method, apparatus, computer device, and storage medium. Among them, the method includes: obtaining abnormal address stack information generated during the operation of an application; the application is developed based on the flutter application development framework; according to the abnormal address stack information, determining the parsing address information corresponding to each line of sub-address stack information in the abnormal address stack information; for each sub-address stack information, if any one of multiple cache spaces does not store the sub-code stack information associated with the parsing address information corresponding to the sub-address stack information, then call the stack parsing service, and based on the parsing address information and the stack restoration information corresponding to the application, restore the sub-code stack information corresponding to the sub-address stack information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technology, and in particular to an abnormal information processing method, apparatus, computer equipment and storage medium. Background Art

[0002] Since the file package corresponding to the released Flutter application is a file package obtained by cropping the original file package, the crash stack generated when the Flutter application fails to run is different from the original crash stack corresponding to the original file package before cropping. Subsequently, in order to determine the cause of the crash stack, the crash stack needs to be restored to the corresponding original crash stack.

[0003] The current restoration method is to create a new restoration process, load the file contents cut from the original file package in the restoration process, process the crash stack as a whole using the loaded cut file contents, and finally restore it to the original crash stack.

[0004] However, the above method takes a certain amount of time to load the file contents cut from the original file package and to process the crash stack as a whole, resulting in a certain delay in stack restoration. In addition, a new process needs to be created each time the stack is restored, resulting in the problem that stack restoration cannot be performed concurrently on a large scale. Summary of the invention

[0005] The embodiments of the present disclosure at least provide a method, apparatus, computer device and storage medium for processing abnormal information.

[0006] In a first aspect, an embodiment of the present disclosure provides a method for processing abnormal information, including:

[0007] Obtaining exception address stack information generated by an application during runtime; the application is developed based on the flutter application development framework;

[0008] Determine, according to the abnormal address stack information, the parsed address information corresponding to each line of sub-address stack information in the abnormal address stack information;

[0009] For each of the sub-address stack information, if any cache space among the multiple cache spaces does not store the sub-code stack information associated with the resolution address information corresponding to the sub-address stack information, the stack resolution service is called to restore the sub-code stack information corresponding to the sub-address stack information based on the resolution address information and the stack restoration information corresponding to the application.

[0010] In a possible implementation, the call stack parsing service restores the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack restoration information corresponding to the application, including:

[0011] Call the call stack parsing service, and use a hash algorithm to determine a target instance for processing the parsed address information from the parsing instances running the call stack parsing service based on the parsed address information;

[0012] Use the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack restoration information corresponding to the application.

[0013] In a possible implementation, the step of using the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack restoration information corresponding to the application includes:

[0014] Determine whether there is a first target parsing process that matches the parsed address information among the created parsing processes currently existing in the target instance;

[0015] When the first target parsing process exists in the target instance, use the first target parsing process to perform stack restoration on the parsed address information based on the stack restoration information that has been loaded and completed in the first target parsing process, to obtain the sub-code stack information corresponding to the sub-address stack information.

[0016] In a possible implementation, the method further includes:

[0017] When the first target parsing process does not exist in the target instance, create a second target parsing process that matches the parsed address information in the target instance, and load the stack restoration information generated and stored during the compilation of the application in the second target parsing process;

[0018] Use the second target parsing process to perform stack restoration on the parsed address information based on the loaded stack restoration information, to obtain the sub-code stack information corresponding to the sub-address stack information.

[0019] In a possible implementation, the multiple cache spaces include a local cache space and a persistent remote storage space;

[0020] After using the second target parsing process to perform stack restoration on the parsed address information based on the loaded stack restoration information to obtain the sub-code stack information corresponding to the sub-address stack information, it further includes:

[0021] Store the parsed address information and the obtained sub-code stack information as key-value pairs in the local cache space and the persistent remote storage space, where the parsed address information serves as the key in the key-value pair, and the sub-code stack information serves as the value in the key-value pair; the local cache space is the local cache space corresponding to the server that receives the exception address stack information; the persistent remote storage space is used to store key-value pairs corresponding to multiple servers.

[0022] In a possible implementation, after using the first target parsing process to perform stack restoration on the parsed address information based on the stack restoration information that has been loaded and completed in the first target parsing process to obtain the sub-code stack information corresponding to the sub-address stack information, it further includes:

[0023] Update the recently used time information of the first target parsing process stored using the Least Recently Used (LRU) algorithm.

[0024] The creating a second target parsing process that matches the parsed address information in the target instance includes:

[0025] When the number of created parsing processes in the target instance meets a preset number, based on the recently used time information corresponding to each created parsing process, filter out the created parsing process that has not been used for the longest time from multiple created parsing processes;

[0026] Delete the created parsing process that has not been used for the longest time, and create a second target parsing process that matches the parsed address information in the target instance.

[0027] In a possible implementation, the method further includes the step of determining whether any cache space in the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information:

[0028] Use the parsed address information corresponding to the sub-address stack information as a query key, and in the key-value pairs respectively stored in the local cache space and the persistent remote storage space in sequence according to the query priorities corresponding to the multiple cache spaces, determine whether there is a target key-value pair that matches the query key;

[0029] When it is determined that there is no such target key-value pair, determine that none of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information.

[0030] In a possible implementation, the method further includes:

[0031] In the case of determining the existence of the target key-value pair, use the sub-code stack information indicated by the value in the target key-value pair as the sub-code stack information corresponding to the sub-address stack information.

[0032] In a possible implementation manner, the determining, according to the exception address stack information, the parsing address information corresponding to each line of sub-address stack information in the exception address stack information includes:

[0033] Perform stack parsing on the exception address stack information to determine the stack header information and address stack information corresponding to the exception address stack information, and split each line of sub-address stack information from the address stack information;

[0034] For each line of sub-address stack information, based on the sub-address stack information and the stack header information, determine the parsing address information corresponding to the sub-address stack information.

[0035] In a second aspect, an embodiment of the present disclosure further provides an exception information processing device, including:

[0036] An acquisition module, configured to acquire exception address stack information generated during the running of an application; the application is developed based on the flutter application development framework;

[0037] A determination module, configured to determine, according to the exception address stack information, the parsing address information corresponding to each line of sub-address stack information in the exception address stack information;

[0038] A restoration module, for each of the sub-address stack information, if any of a plurality of cache spaces does not store sub-code stack information associated with the parsing address information corresponding to the sub-address stack information, then call a stack parsing service, and based on the parsing address information and the stack restoration information corresponding to the application, restore the sub-code stack information corresponding to the sub-address stack information.

[0039] In a possible implementation manner, when the restoration module executes the calling of the stack parsing service and restores the sub-code stack information corresponding to the sub-address stack information based on the parsing address information and the stack restoration information corresponding to the application, it is configured to call the stack parsing service, and use a hash algorithm to determine, based on the parsing address information, a target instance for processing the parsing address information from the parsing instances in which the stack parsing service runs;

[0040] Use the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsing address information and the stack restoration information corresponding to the application.

[0041] In a possible implementation, when the reduction module executes the operation of using the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack reduction information corresponding to the application, it is used to determine whether there is a first target parsing process in the currently existing created parsing processes in the target instance that matches the parsed address information;

[0042] When the first target parsing process exists in the target instance, use the first target parsing process to perform stack reduction on the parsed address information based on the stack reduction information that has been loaded and completed in the first target parsing process, so as to obtain the sub-code stack information corresponding to the sub-address stack information.

[0043] In a possible implementation, the reduction module is further used to, when the first target parsing process does not exist in the target instance, create a second target parsing process that matches the parsed address information in the target instance, and load the stack reduction information generated and stored during the compilation of the application in the second target parsing process;

[0044] Use the second target parsing process to perform stack reduction on the parsed address information based on the loaded stack reduction information, so as to obtain the sub-code stack information corresponding to the sub-address stack information.

[0045] In a possible implementation, the multiple cache spaces include a local cache space and a persistent remote storage space;

[0046] The device further includes a storage module, which is used to, after using the second target parsing process to perform stack reduction on the parsed address information based on the loaded stack reduction information to obtain the sub-code stack information corresponding to the sub-address stack information, store the parsed address information and the obtained sub-code stack information as a key-value pair in the local cache space and the persistent remote storage space, where the parsed address information serves as the key in the key-value pair, and the sub-code stack information serves as the value in the key-value pair; the local cache space is the local cache space corresponding to the server that receives the exception address stack information; the persistent remote storage space is used to store key-value pairs corresponding to multiple servers.

[0047] In a possible implementation, the reduction module is further used to, after using the first target parsing process to perform stack reduction on the parsed address information based on the stack reduction information that has been loaded and completed in the first target parsing process to obtain the sub-code stack information corresponding to the sub-address stack information, update the recently used time information of the first target parsing process stored using the least recently used (LRU) algorithm;

[0048] and when creating a second target parsing process that matches the parsed address information in the target instance, when the number of created parsing processes in the target instance meets a preset number, according to the most recently used time information corresponding to each of the created parsing processes, filtering out the created parsing process that has not been used for the longest time from the multiple created parsing processes;

[0049] Deleting the created parsing process that has not been used for the longest time, and creating a second target parsing process that matches the parsed address information in the target instance.

[0050] In a possible implementation manner, the restoration module is further configured to determine whether any one of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information according to the following steps:

[0051] Taking the parsed address information corresponding to the sub-address stack information as a query key, and sequentially determining whether there is a target key-value pair that matches the query key from the key-value pairs stored in the local cache space and the persistent remote storage space respectively according to the query priorities corresponding to the multiple cache spaces;

[0052] In the case where it is determined that there is no such target key-value pair, it is determined that none of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information.

[0053] In a possible implementation manner, the restoration module is further configured to, in the case where it is determined that there is a target key-value pair, use the sub-code stack information indicated by the value in the target key-value pair as the sub-code stack information corresponding to the sub-address stack information.

[0054] In a possible implementation manner, when the determination module executes determining the parsed address information corresponding to each line of sub-address stack information in the abnormal address stack information according to the abnormal address stack information, it is configured to perform stack parsing on the abnormal address stack information, determine the stack header information and the address stack information corresponding to the abnormal address stack information, and split each line of sub-address stack information from the address stack information;

[0055] For each line of sub-address stack information, based on the sub-address stack information and the stack header information, determine the parsed address information corresponding to the sub-address stack information.

[0056] In a third aspect, an alternative implementation of the present disclosure further provides a computer device, including a processor and a memory. The memory stores machine-readable instructions executable by the processor. The processor is configured to execute the machine-readable instructions stored in the memory. When the machine-readable instructions are executed by the processor, the machine-readable instructions execute the steps in the first aspect or any possible implementation manner in the first aspect.

[0057] In a fourth aspect, an alternative implementation of the present disclosure further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is run, it executes the steps in the first aspect or any possible implementation manner in the first aspect.

[0058] For the effect description of the above abnormal information processing device, computer device, and computer-readable storage medium, refer to the description of the above abnormal information processing method, which will not be elaborated here.

[0059] The abnormal information processing method, device, computer device, and storage medium provided by the embodiments of the present disclosure split the abnormal address stack information into single-line sub-address stack information and perform a restoration process on the single-line sub-address stack information. Compared with the method of restoring the abnormal address stack information as a whole, it can effectively reduce the computing resources consumed by the restoration process, thereby improving the speed of stack restoration. When the sub-code stack information corresponding to the parsed address information does not exist in multiple cache spaces, the stack parsing service is called to perform stack restoration, which can avoid the operations of creating a new process and loading stack restoration information every time stack restoration is performed. Furthermore, it can effectively increase the number of abnormal address stack information that can be processed in parallel and achieve large-scale concurrent operations. In addition, even if the stack parsing service needs to be called to perform stack restoration, the information processed by the stack parsing service each time is sub-address stack information with a smaller data volume, and the stack restoration speed can be effectively guaranteed, effectively solving the problem of stack restoration latency.

[0060] Furthermore, the abnormal information processing method, device, computer device, and storage medium provided by the embodiments of the present disclosure can also implement stack restoration by using the first target parsing process that matches the parsed address information in the reserved parsing process when the parsing service is called, and since the stack restoration information has been loaded in the first target parsing process, the time for loading the stack restoration information is saved, and the stack restoration speed can also be improved, effectively solving the problem of stack restoration latency.

[0061] Further, for the abnormal information processing method, apparatus, computer device, and storage medium provided by the embodiments of the present disclosure, when the number of created parsing processes in the target instance meets the preset number, when creating a second target parsing process, the least recently used created parsing process can also be deleted according to the most recently used time information corresponding to each created parsing process, and then the second target parsing is created. In this way, it can not only ensure that the number of parsing processes in the target instance is controlled within the preset number to avoid the situation of Out Of Memory (OOM), but also ensure that the parsing processes stored in the target instance are all commonly used processes with high activity, ensuring the vitality of the target instance.

[0062] To make the above objects, features, and advantages of the present disclosure more obvious and understandable, the following specific preferred embodiments are given, and in conjunction with the accompanying drawings, the detailed description is as follows. BRIEF DESCRIPTION OF THE DRAWINGS

[0063] To more clearly illustrate the technical solutions of the embodiments of the present disclosure, the accompanying drawings required for use in the embodiments will be briefly introduced below. The accompanying drawings are incorporated into the specification and constitute a part of this specification. These drawings show embodiments that conform to the present disclosure and are used together with the specification to illustrate the technical solutions of the present disclosure. It should be understood that the following drawings only show some embodiments of the present disclosure and should not be regarded as limiting the scope. For those of ordinary skill in the art, other related drawings can be obtained based on these drawings without creative efforts.

[0064] Figure 1 Shows a flowchart of an abnormal information processing method provided by an embodiment of the present disclosure;

[0065] Figure 2 Shows a schematic diagram of a specific implementation process of abnormal information processing provided by an embodiment of the present disclosure;

[0066] Figure 3 Shows a schematic diagram of an abnormal information processing apparatus provided by an embodiment of the present disclosure;

[0067] Figure 4 Shows a schematic diagram of the structure of a computer device provided by an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0068] To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present disclosure. Apparently, the described embodiments are only some, rather than all, of the embodiments of the present disclosure. The components of the embodiments of the present disclosure described and illustrated herein can be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of the present disclosure is not intended to limit the scope of the claimed present disclosure, but merely represents selected embodiments of the present disclosure. All other embodiments obtained by those skilled in the art based on the embodiments of the present disclosure without creative efforts fall within the scope of protection of the present disclosure.

[0069] In addition, the terms "first", "second", etc. in the description, claims, and the above-mentioned drawings of the embodiments of the present disclosure are used to distinguish similar objects, and do not necessarily need to be used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances so that the embodiments described herein can be implemented in an order different from that shown or described herein.

[0070] As used herein, "a plurality of" or "several" means two or more. "And / or" describes the association relationship of associated objects and indicates that three relationships can exist. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after.

[0071] It has been found through research that in order to improve the security of the application file package corresponding to a Flutter application and reduce the volume of the application file package, during the compilation and release process of the Flutter application, the original file package corresponding to the Flutter application is usually trimmed, and the trimmed file package is used as the application file package for final release, and the file content trimmed off is stored. After a Flutter application crashes with an abnormal stack trace, each time a new process needs to be created in the target instance, and the trimmed file content is loaded. Then, the loaded trimmed file content is used to process the entire stack trace, and finally the stack trace is restored to the original stack trace. In this way, not only does it cause a delay problem in stack trace restoration, but also due to the limited number of processes that can be concurrently created, there is a problem that stack trace restoration cannot be carried out in a large-scale concurrent manner.

[0072] Based on the above research, the present disclosure provides an abnormal information processing method, apparatus, computer device, and storage medium. By splitting the abnormal address stack information into single-line sub-address stack information and performing a restoration process on the single-line sub-address stack information, compared with the method of performing a restoration process on the abnormal address stack information as a whole, it can effectively reduce the computing resources consumed by the restoration process, thereby improving the speed of stack restoration. When the sub-code stack information corresponding to the parsed address information does not exist in multiple cache spaces, the stack parsing service is called to perform stack restoration, which can avoid the operations of creating a new process and loading stack restoration information each time stack restoration is performed, and thus can effectively increase the number of abnormal address stack information that can be processed in parallel, realizing large-scale concurrent operations. In addition, even if the stack parsing service needs to be called to perform stack restoration, the information processed by the stack parsing service each time is the sub-address stack information with a smaller data volume, and the stack restoration speed can be effectively guaranteed, effectively solving the problem of stack restoration latency.

[0073] Regarding the defects existing in the above solutions, they are all the results obtained by the inventors through practice and careful research. Therefore, the process of discovering the above problems and the solutions proposed by the present disclosure for the above problems in the following text should be regarded as the contributions made by the inventors to the present disclosure during the process of the present disclosure.

[0074] It should be noted that similar reference numerals and letters denote similar items in the following drawings. Therefore, once an item is defined in one drawing, it does not need to be further defined and explained in subsequent drawings.

[0075] It should be noted that the specific terms mentioned in the embodiments of the present disclosure include:

[0076] Flutter: It is an open-source user interface (UI) toolkit that helps developers efficiently build beautiful multi-platform applications through a set of code libraries, supporting mobile, web, desktop, and embedded platforms.

[0077] To facilitate the understanding of this embodiment, first, a detailed introduction is given to an abnormal information processing method disclosed in the embodiments of the present disclosure. The execution subject of the abnormal information processing method provided in the embodiments of the present disclosure is generally a computer device with a certain computing ability. In some possible implementation manners, the abnormal information processing method can be implemented by a processor calling computer-readable instructions stored in a memory.

[0078] The following takes the execution subject as a computer device as an example to illustrate the abnormal information processing method provided in the embodiments of the present disclosure.

[0079] As Figure 1As shown in the figure, it is a flowchart of an abnormal information processing method provided by an embodiment of the present disclosure, which may include the following steps:

[0080] S101: Obtain the abnormal address stack information generated during the operation of the application; the application is developed based on the flutter application development framework.

[0081] The abnormal information processing method provided by the embodiment of the present disclosure can be applied to any application developed based on the flutter application development framework.

[0082] Here, in order to improve the security and volume of the application file package corresponding to the application, when the application is compiled and released, the flutter obfuscation method will be used to trim and package the application file package to obtain the obfuscated software development kit (SDK) of the application and release it. Since the released application SDK has been trimmed, the abnormal address stack information generated during the operation of the application will be different from the corresponding abnormal stack information (specifically, the abnormal code stack information) before trimming. Furthermore, it is impossible to directly determine the cause of the application's abnormality based on the abnormal address stack information. In this way, there is a need to restore the abnormal address stack information.

[0083] The above abnormal address stack information is the crash stack information generated during the operation of the application, and the above application is the trimmed and released flutter application.

[0084] Specifically, when any trimmed and released flutter application is running, if the application generates an abnormality, the data reporting service used to report the abnormal address stack information can be used to send the abnormal address stack information generated during the operation of the application to the abnormal address stack receiving service (flutter_crash_sink service). When the flutter_crash_sink service successfully receives the abnormal address stack information, that is, the abnormal address stack information generated during the operation of the application is successfully obtained. Here, the flutter_crash_sink service can receive multiple abnormal address stack information at the same time, that is, multiple abnormal address stack information can be obtained at the same time.

[0085] S102: According to the abnormal address stack information, determine the parsing address information corresponding to each line of sub-address stack information in the abnormal address stack information.

[0086] Here, the abnormal address stack information may include multiple different sub-address stacks, and different sub-address stack information corresponds to different parsing address information. The parsing address information is used to restore the sub-address stack information to the corresponding abnormal sub-stack information before trimming. Specifically, the parsing address information can be an address symbol.

[0087] In specific implementation, the flutter_crash_sink service can send the obtained exception stack address information to the stack restoration service (flutter_retrace service). Then, the flutter_retrace service is used to split the exception stack address information to obtain multiple lines of sub-address stack information. After that, for each line of sub-address stack information, according to the information content corresponding to the sub-address stack information, the sub-address stack information can be restored to parsed address information.

[0088] Here, if there are multiple obtained exception address stack information, the flutter_retrace service can be used to process each exception address stack information in parallel to determine the parsed address information corresponding to each line of sub-address stack information in each exception address stack information.

[0089] In one embodiment, for S102, it can be implemented according to the following steps:

[0090] S102-1: Perform stack parsing on the exception address stack information to determine the stack header information and address stack information corresponding to the exception address stack information, and split each line of sub-address stack information from the address stack information.

[0091] Here, the stack header information is used to identify the exception address stack information, and different exception address stack information corresponds to different stack header information. The address stack information is each exception address in the exception address stack information. For example, the exception address can be an address like 0x822828; or the address stack information can also be referred to as the running information in the exception address stack information.

[0092] In specific implementation, the flutter_retrace service can be used to perform stack parsing on the exception address stack information, split the exception address stack information into stack header information and address stack information, and then use the flutter_retrace service to further split the address stack information to obtain each line of sub-address stack information.

[0093] S102-2: For each line of sub-address stack information, based on the sub-address stack information and the stack header information, determine the parsed address information corresponding to the sub-address stack information.

[0094] In specific implementation, for each line of sub-address stack information, the flutter_retrace service can be used to combine the sub-address stack information and the stack header information to obtain the combined sub-address stack information, and then convert the combined sub-address stack information into parsed address information. Here, specifically, the combined sub-address stack information can be restored to an address symbol.

[0095] S103: For each piece of sub - address stack information, if in any of the multiple cache spaces, there is no sub - code stack information associated with the parsed address information corresponding to the sub - address stack information stored, then call the stack parsing service, and based on the parsed address information and the stack restoration information corresponding to the application, restore the sub - code stack information corresponding to the sub - address stack information.

[0096] Here, the sub - code stack information is the exception stack information obtained after restoring the sub - address stack information. Compared with the sub - address stack information, it is a kind of exception stack information that can be recognized by humans. For example, when the sub - address stack information is an address like 0x822828, the restored sub - code stack information can be dart.XXXX.main.dart 80.

[0097] Each of the multiple cache spaces is used to store the sub - code stack information associated with the parsed address information corresponding to the historical sub - address stack information that has been restored, that is, to store the association relationship between the parsed address information and the sub - code stack information. This association relationship can be represented in the form of key - value pairs. Among them, the key in the key - value pair is the parsed address information, and the value in the key - value pair is the associated sub - code stack information. For example, before determining the current sub - address stack information 1 and the parsed address information 1 corresponding to the sub - address stack information 1, based on the parsed address information 2 corresponding to the sub - address stack information 2, the sub - code stack information 1 corresponding to the sub - address stack information 2 has been restored. Then, it can be determined that there is an association relationship between the parsed address information 2 and the sub - code stack information 1, and the parsed address information 2 and the sub - code stack information 1 are respectively stored in the multiple cache spaces. Here, the sub - address stack information 2 is a piece of historical sub - address stack information. Furthermore, after determining the sub - address stack information 1 and the parsed address information 1, it can be further determined that there is no sub - code stack information associated with the parsed address information 1 in the multiple cache spaces.

[0098] The multiple cache spaces can have different levels respectively. A low - level cache space can correspond to one server, that is, the low - level cache space can be used to store the association relationship between the parsed address information corresponding to the sub - address stack information and the sub - code stack information corresponding to the sub - address stack information. Here, all the sub - address stack information is the sub - address stack information generated by one server corresponding to the low - level cache space when the application is running.

[0099] A high - level cache space can correspond to multiple servers, that is, the high - level cache space can be used to store the association relationship between the parsed address information corresponding to the sub - address stack information and the sub - code stack information corresponding to the sub - address stack information. Among them, the sub - address stack information here can be the sub - address stack information generated by multiple servers corresponding to the high - level cache space when the application is running.

[0100] That is, the content stored in the high-level cache space can be the sum of the contents of multiple low-level cache spaces.

[0101] For example, multiple cache spaces include a high-level cache space 1, a low-level cache space 2, and a low-level cache space 3. The content stored in cache space 1 can be the sum of the content stored in cache space 2 and the content stored in cache space 3.

[0102] The above stack parsing service is the flutter_retrace_tool service, which is used to restore the sub-code stack information corresponding to the sub-address stack information based on the parsing address information corresponding to the sub-address stack information.

[0103] The stack restoration information is the file content cut from the application file package when using the flutter obfuscation method to cut and package the application file package. The cut file content is used to restore the exception address stack information to the exception code stack information. The stack restoration information can be a mapping file, which includes various exception address stack information, the names of the exception address stack information, the parsing address information corresponding to each sub-address stack information in the exception address stack information, and the sub-code stack information corresponding to each parsing address information. In specific implementation, the parsing address information in the mapping file can be an address symbol. That is, the mapping file can store the mapping relationship between each address symbol and the sub-code stack information.

[0104] The stack restoration information is generated when using the flutter obfuscation method to cut and package the application file package, and can be uniquely identified by a commit ID. After generation, it can be uploaded to a storage device for persistent storage.

[0105] In specific implementation of this step, for each sub-address stack information, it is possible to first determine whether there is an association relationship related to the parsing address information corresponding to the sub-address stack information (the association relationship is used to indicate the sub-code stack information corresponding to the parsing address information) stored in any one of the multiple cache spaces. In the case where it is determined that no relevant association relationship is stored in any one of the multiple cache spaces, that is, in the case where it is determined that no sub-code stack information associated with the parsing address information corresponding to the sub-address stack information is stored in any cache space, the flutter_retrace_tool service can be called, and using the flutter_retrace_tool service, based on the parsing address information and the stack restoration information corresponding to the application, the sub-address stack information is restored to obtain the sub-code stack information corresponding to the sub-address stack information.

[0106] In another implementation, when it is determined that any one of the cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information, the sub-code stack information can be directly used as the sub-code stack information corresponding to the sub-address stack information currently being processed.

[0107] In this way, by splitting the abnormal address stack information into single-line sub-address stack information and performing a restoration process on the single-line sub-address stack information, compared with the method of performing a restoration process on the abnormal address stack information as a whole, it is possible to effectively reduce the computing resources consumed by the restoration process, thereby improving the speed of stack restoration. When the sub-code stack information corresponding to the parsed address information does not exist in multiple cache spaces, the stack parsing service is called to perform stack restoration, which can avoid the operations of creating a new process and loading stack restoration information every time stack restoration is performed. Furthermore, it is possible to effectively increase the number of abnormal address stack information that can be processed in parallel and achieve large-scale concurrent operations. In addition, even if the stack parsing service needs to be called to perform stack restoration, the information that the stack parsing service needs to process each time is sub-address stack information with a smaller data volume, and the stack restoration speed can be effectively guaranteed, effectively solving the problem of stack restoration latency.

[0108] In one embodiment, for the step of calling the stack parsing service in S103 to restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack restoration information corresponding to the application, it can also be implemented according to the following steps:

[0109] S103-1: Call the stack parsing service, and use the hash algorithm to determine the target instance for processing the parsed address information from the parsing instances running in the stack parsing service based on the parsed address information.

[0110] Here, multiple created parsing instances can be running in the stack parsing service, and the parsing instances are used to restore the abnormal address stack information to code stack information. Specifically, the parsing instance can be a running machine. For example, one parsing instance is a server.

[0111] In specific implementation, when it is determined that no sub-code stack information corresponding to the sub-address stack information is stored in any cache space, the flutter_retrace_tool service can be called. When calling the stack parsing service, the consistent hashing algorithm can be used to process the parsed address information to determine the hash value corresponding to the parsed address information. Then, based on the hash value, among the multiple parsing instances running in the flutter_retrace_tool service, the parsing instance that matches the hash value can be determined, and this parsing instance can be used as the target instance determined for processing the parsed address information.

[0112] S103-2: Use the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack restoration information corresponding to the application.

[0113] In specific implementation, the target instance can be used to determine the address symbol that matches the address symbol corresponding to the sub-address stack information according to the mapping relationship between each address symbol stored in the mapping file and the sub-code stack information, and use the sub-code stack information corresponding to the matching address symbol as the sub-code stack information corresponding to the sub-address stack information obtained after restoration.

[0114] In one implementation, if there is no target instance that matches the parsed address information in the stack parsing service, or if there is no idle parsing instance in the stack parsing service, the auto-scaling method can also be used to create a new parsing instance in the stack parsing service, and use the newly created parsing instance to restore the sub-address stack information to the sub-code stack information based on the parsed address information and the stack restoration information.

[0115] In one embodiment, S103-2 can be implemented according to the following steps:

[0116] S103-2-1: Determine whether there is a first target parsing process that matches the parsed address information among the created parsing processes currently existing in the target instance.

[0117] Here, a parsing instance may include one or more created parsing processes. The created parsing processes are used to process parsing address information, so as to restore sub-code stack information that matches the sub-address stack information corresponding to the parsing address information. A parsing instance may correspond to multiple parsing address information, and different created parsing processes may be used to process different parsing address information. For example, parsing instance 1 may correspond to parsing address information 1, parsing address information 2, and parsing address information 3. The created parsing process 1 in the parsing instance may process parsing address information 1, the created parsing process 2 may process parsing address information 2, and the created parsing process 3 may process parsing address information 3.

[0118] The first target parsing process that matches the parsing address information is specifically: among the created parsing processes, the parsing process that is used to restore the sub-code stack information corresponding to the sub-address stack information according to the parsing address information.

[0119] In specific implementation, after determining the target instance, the currently existing created parsing processes in the target instance can be determined first. Then, it can be determined whether there is a first target parsing process that matches the parsing address information among the created parsing processes, that is, it can be determined whether there is a parsing process in the created parsing processes that can process the parsing address information.

[0120] S103-2-2: When there is a first target parsing process in the target instance, use the first target parsing process to perform stack restoration on the parsing address information based on the stack restoration information that has been loaded and completed in the first target parsing process, so as to obtain the sub-code stack information corresponding to the sub-address stack information.

[0121] Here, since the created parsing process is used to restore the abnormal address stack information when it is created, it must include the stack restoration information that has been loaded and completed. And the first target parsing process is one of the created parsing processes, so there must be stack restoration information that has been loaded and completed in the first target parsing process.

[0122] Based on this, when it is determined that there is a first target parsing process, use the first target parsing process to perform stack restoration. Specifically, the sub-code stack information corresponding to the currently processed parsing address information can be determined from the sub-code stack information corresponding to each parsing address information stored in the stack restoration information that has been loaded and completed, and this sub-code stack information is used as the sub-code stack information corresponding to the currently processed sub-address stack information.

[0123] Here, the consistent hashing algorithm is used to process the parsed address information, which can achieve sending the same parsed address information determined at different times to the same target instance, and using the created parsing process in the target instance for processing. In this way, the problem of having the same parsing process running in different parsing instances can be avoided, thereby increasing the number of sub-address stack information that can be processed in parallel.

[0124] In another embodiment, in the case where the first target parsing process does not exist in the target instance, the sub-address stack information corresponding to the parsed address information can be restored by creating a new parsing process. Specifically, a second target parsing process matching the parsed address information can be created in the target instance. Here, the second target parsing process matching the parsed address information is a parsing process that can restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information.

[0125] After that, the stack restoration information generated and stored during the compilation of the application can be loaded into the second target parsing process. Here, as can be seen from the above embodiment, the stack restoration information can be uploaded to a storage device for persistent storage after being generated. Therefore, in specific implementation, when the second target parsing process is successfully created, the target meta-information corresponding to the hash value can be determined according to the hash value obtained after performing consistent hashing on the parsed address information and a pre-created database (such as a mysql database) that stores the correspondence between various hash values and meta-information. The meta-information can specifically be the name, commit ID, etc. of the stack restoration information persistently stored in the storage device. Then, the stack restoration information corresponding to the target meta-information can be determined from the multiple stack restoration information stored in the storage device using the target meta-information. Finally, the stack restoration information can be loaded into the second target parsing process.

[0126] Furthermore, the second target parsing process can be used to perform stack restoration on the parsed address information based on the loaded stack restoration information to obtain the sub-code stack information corresponding to the sub-address stack information. Here, the steps for the second target parsing process to restore the sub-code stack information corresponding to the sub-address stack information can refer to the steps for using the first target parsing process to restore the sub-code stack information in S103-2-2 above, which will not be elaborated here.

[0127] In addition, a new parsing instance can also be created in the stack parsing service. In the case where it is determined that there is no available target instance in the stack parsing service, a target instance can be created first, and a parsing process can be created in the target instance to restore the sub-code stack information corresponding to the sub-address stack information using the newly created parsing process.

[0128] In one embodiment, the created parsing processes in each parsing instance can be scheduled using the Least Recently Used (LRU) algorithm. Therefore, after restoring the sub-address stack information to sub-code stack information using the first target parsing process in the target instance, the most recently used time information of the first target parsing process stored using the LRU algorithm can also be updated.

[0129] In addition, for the step of creating a second target parsing process in the target instance that matches the parsing address information, since the number of parsing processes that can be accommodated in the target instance is limited, before creating the second target parsing instance, it is also necessary to determine whether the number of created parsing processes in the target instance meets a preset number. Here, the preset number is the maximum number of parsing processes that the target instance can accommodate. If not, the second target parsing instance can be directly created in the target instance. If so, it means that the number of currently saved created parsing processes in the target instance has reached the maximum and new parsing processes cannot be saved. Thus, to ensure that the second target parsing process can be successfully created and saved in the target instance, the most recently used time information corresponding to each stored created parsing process can be obtained, and based on the most recently used time information corresponding to each created parsing process, the least recently used created parsing process can be filtered out from the multiple created parsing processes in the target instance.

[0130] Furthermore, the least recently used created parsing process can be deleted, and the second target parsing process can be created in the target instance. In this way, the least recently used created parsing process is generally an infrequently used parsing process. By deleting this type of parsing process and then creating a new parsing process, it can not only ensure that the number of parsing processes in the target instance is controlled within the preset number to avoid the situation of Out Of Memory (OOM), but also ensure that the parsing processes stored in the target instance are all frequently used processes with high activity, thus ensuring the vitality of the target instance.

[0131] In one embodiment, the multiple cache spaces can specifically include a local cache space and a persistent remote storage space. Among them, the local cache space is the local storage space corresponding to the server that receives the abnormal address stack information. The local cache space is a low-level storage space, and the persistent remote storage space is a high-level storage space corresponding to multiple servers. In specific implementation, both the local cache space and the persistent remote storage space can be key-value storage spaces.

[0132] After using the second target parsing process to perform stack restoration on the parsed address information based on the loaded stack restoration information to obtain the sub-code stack information corresponding to the sub-address stack information, the parsed address information and the restored sub-code stack information can also be used as a key-value pair and stored in the local cache space and the persistent remote storage space. Among them, the parsed address information can be used as the key in the key-value pair, and the sub-code stack information can be used as the value in the key-value pair. In this way, based on the fact that the persistent remote storage space corresponds to multiple servers, the persistent remote storage space can store key-value pairs corresponding to multiple servers.

[0133] Alternatively, in the case where the sub-code stack information corresponding to the sub-address stack information is restored by using the first target parsing process, the parsed address information and the restored sub-code stack information can also be used as a key-value pair and stored in the local cache space and the persistent remote storage space.

[0134] In this way, by storing the parsed address information and the restored sub-code stack information as key-value pairs in multiple cache spaces, after receiving new abnormal address stack information and determining each line of sub-address stack information subsequently, it is possible to first determine whether there is corresponding sub-code stack information in the cache space. If so, it can be directly used without processing by the parsing process, saving resources.

[0135] In one embodiment, when both the local storage space and the persistent remote storage space are key-value storage spaces, the following steps can also be used to determine whether any cache space among multiple cache spaces stores the sub-code stack information associated with the parsed address information corresponding to the sub-address stack information:

[0136] Use the parsed address information corresponding to the sub-address stack information as the query key, and in turn determine whether there is a target key-value pair that matches the query key from the key-value pairs already stored in the local cache space and the persistent remote storage space respectively according to the query priorities corresponding to the multiple cache spaces.

[0137] Here, since the key-value pairs stored in the persistent remote storage space can correspond to multiple servers, when there is no target key-value pair that matches the query key in the local cache space, it is also possible to further determine whether there is a target key-value pair from the richer key-value pairs stored in the persistent remote storage space. Therefore, for the query priority, the priority of the local cache space can be set to be greater than the priority of the persistent remote storage space to achieve hierarchical query.

[0138] In specific implementation, after determining the query key, it is possible to first determine whether there is a target key-value pair in the key-value pairs stored in the local cache space that matches the query key. If not, then determine whether there is a target key-value pair in the key-value pairs stored in the persistent remote storage space that matches the query key.

[0139] Further, in the case where it is determined that there is no target key-value pair in both the local cache space and the persistent remote storage space, it is determined that none of any cache spaces in the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information.

[0140] In another embodiment, in the case where it is determined that there is a target key-value pair in the key-value pairs stored in any cache space, the sub-code stack information indicated by the value in the target key-value pair can be directly used as the sub-code stack information corresponding to the sub-address stack information.

[0141] Here, if the cache space storing the target key-value pair is the persistent remote storage space, the target key-value pair can also be stored in the local cache space.

[0142] As Figure 2 shown, it is a schematic diagram of a specific implementation process of exception information processing provided by an embodiment of the present disclosure. Specifically, an exception stack address information can be obtained by using an exception address stack receiving service (flutter_crash_sink service), and then a stack restoration service (flutter_retrace service) can be used to determine the parsed address information corresponding to each line of sub-address stack information in the exception address stack information according to the exception address stack information. For each line of sub-address stack information, the parsed address information corresponding to the sub-address stack information can be used as a query key, and it is determined whether there is a target key-value pair in the key-value pairs respectively stored in the local cache space and the persistent remote storage space in turn according to the query priorities corresponding to the multiple cache spaces.

[0143] If so, the sub-code stack information indicated by the value in the target key-value pair is used as the sub-code stack information corresponding to the sub-address stack information. If not, a stack parsing service (flutter_retrace_tool service) can be called, and the parsed address information can be processed by using a consistent hashing (hash) algorithm to determine the target instance corresponding to the sub-address stack information from the multiple parsing instances running in the flutter_retrace_tool service.

[0144] After that, it can be determined whether there is a first target parsing process in the target instance. If so, the child code stack information corresponding to the child address stack information is restored using the first target parsing process. If not, a second target parsing process can be created in the target instance, and the target meta-information is determined based on the hash value obtained by performing consistent hashing on the parsing address information and the mysql database pre-created to store the correspondence between various hash values and meta-information. Then, using the target meta-information, the stack restoration information corresponding to the target meta-information is determined from the multiple stack restoration information stored in the storage device, and the stack restoration information is loaded into the second target parsing process. Finally, the child code stack information corresponding to the child address stack information can be restored using the second target parsing process.

[0145] Those skilled in the art can understand that in the above method of the specific implementation manner, the writing order of each step does not mean a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of each step should be determined according to its function and possible internal logic.

[0146] Based on the same inventive concept, an exception information processing device corresponding to the exception information processing method is also provided in the embodiments of the present disclosure. Since the principle of solving problems by the device in the embodiments of the present disclosure is similar to the above exception information processing method of the embodiments of the present disclosure, the implementation of the device can refer to the implementation of the method, and the repeated parts will not be described again.

[0147] As Figure 3 shown, it is a schematic diagram of an exception information processing device provided by an embodiment of the present disclosure, including:

[0148] An obtaining module 301, configured to obtain exception address stack information generated during the running of an application; the application is developed based on the flutter application development framework;

[0149] A determining module 302, configured to determine parsing address information corresponding to each line of child address stack information in the exception address stack information according to the exception address stack information;

[0150] A restoring module 303, for each of the child address stack information, if any of the multiple cache spaces does not store the child code stack information associated with the parsing address information corresponding to the child address stack information, then call a stack parsing service, and based on the parsing address information and the stack restoration information corresponding to the application, restore the child code stack information corresponding to the child address stack information.

[0151] In a possible implementation, when the reduction module 303 executes the call stack parsing service and restores the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack reduction information corresponding to the application, it is used to call the call stack parsing service, and based on the parsed address information, use a hash algorithm to determine a target instance for processing the parsed address information from the parsing instances running the call stack parsing service;

[0152] Using the target instance, based on the parsed address information and the stack reduction information corresponding to the application, restore the sub-code stack information corresponding to the sub-address stack information.

[0153] In a possible implementation, when the reduction module 303 executes the operation of using the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsed address information and the stack reduction information corresponding to the application, it is used to determine whether there is a first target parsing process in the currently existing created parsing processes in the target instance that matches the parsed address information;

[0154] In the case where the first target parsing process exists in the target instance, use the first target parsing process to perform stack reduction on the parsed address information based on the stack reduction information that has been loaded and completed in the first target parsing process, to obtain the sub-code stack information corresponding to the sub-address stack information.

[0155] In a possible implementation, the reduction module 303 is further used to, in the case where the first target parsing process does not exist in the target instance, create a second target parsing process in the target instance that matches the parsed address information, and load the stack reduction information generated and stored during the compilation of the application in the second target parsing process;

[0156] Using the second target parsing process, perform stack reduction on the parsed address information based on the loaded stack reduction information, to obtain the sub-code stack information corresponding to the sub-address stack information.

[0157] In a possible implementation, the multiple cache spaces include a local cache space and a persistent remote storage space;

[0158] The device further includes a storage module 304, configured to, after using the second target parsing process to perform stack restoration on the parsed address information based on the loaded stack restoration information to obtain sub-code stack information corresponding to the sub-address stack information, store the parsed address information and the obtained sub-code stack information as key-value pairs in the local cache space and the persistent remote storage space, where the parsed address information serves as the key in the key-value pair, and the sub-code stack information serves as the value in the key-value pair; the local cache space is the local cache space corresponding to the server that receives the abnormal address stack information; the persistent remote storage space is used to store key-value pairs corresponding to multiple servers.

[0159] In a possible implementation manner, the restoration module 303 is further configured to, after using the first target parsing process to perform stack restoration on the parsed address information based on the stack restoration information that has been loaded and completed in the first target parsing process to obtain sub-code stack information corresponding to the sub-address stack information, update the recently used time information of the first target parsing process stored using the least recently used (LRU) algorithm.

[0160] And when creating a second target parsing process that matches the parsed address information in the target instance, it is configured to, when the number of created parsing processes in the target instance meets a preset number, screen out the created parsing process that has not been used for the longest time from multiple created parsing processes according to the recently used time information corresponding to each created parsing process.

[0161] Delete the created parsing process that has not been used for the longest time, and create a second target parsing process that matches the parsed address information in the target instance.

[0162] In a possible implementation manner, the restoration module 303 is further configured to determine whether any of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information according to the following steps:

[0163] Use the parsed address information corresponding to the sub-address stack information as a query key, and sequentially determine whether there is a target key-value pair that matches the query key from the key-value pairs already stored in the local cache space and the persistent remote storage space respectively according to the query priorities corresponding to the multiple cache spaces.

[0164] In the case where it is determined that there is no such target key-value pair, it is determined that none of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information.

[0165] In a possible implementation, the reduction module 303 is further configured to, when it is determined that the target key-value pair exists, use the sub-code stack information indicated by the value in the target key-value pair as the sub-code stack information corresponding to the sub-address stack information.

[0166] In a possible implementation, when the determination module 302 executes determining the parsing address information corresponding to each line of sub-address stack information in the exception address stack information according to the exception address stack information, it is configured to perform stack parsing on the exception address stack information to determine the stack header information and the address stack information corresponding to the exception address stack information, and split each line of sub-address stack information from the address stack information;

[0167] For each line of sub-address stack information, based on the sub-address stack information and the stack header information, determine the parsing address information corresponding to the sub-address stack information.

[0168] Descriptions of the processing flows of the various modules in the device and the interaction flows between the various modules may refer to the relevant descriptions in the above method embodiments and will not be elaborated here.

[0169] The embodiments of the present disclosure further provide a computer device, as Figure 4 shown, which is a schematic structural diagram of a computer device provided by the embodiments of the present disclosure, including:

[0170] A processor 41, a memory 42, and a bus 43. Among them, the memory 42 stores machine-readable instructions executable by the processor 41, and the processor 41 is configured to execute the machine-readable instructions stored in the memory 42. When the machine-readable instructions are executed by the processor 41, the processor 41 executes the following steps: S101: Obtain exception address stack information generated during the operation of the application; the application is developed based on the flutter application development framework; S102: According to the exception address stack information, determine the parsing address information corresponding to each line of sub-address stack information in the exception address stack information; and S103: For each sub-address stack information, if any of the multiple cache spaces does not store the sub-code stack information associated with the parsing address information corresponding to the sub-address stack information, call the stack parsing service, and based on the parsing address information and the stack reduction information corresponding to the application, restore the sub-code stack information corresponding to the sub-address stack information.

[0171] The above-mentioned memory 42 includes an internal memory 421 and an external memory 422; the internal memory 421 here is also called the main memory, which is used to temporarily store the operation data in the processor 41 and the data exchanged with the external memory 422 such as a hard disk. The processor 41 exchanges data with the external memory 422 through the internal memory 421. When the computer device is running, the processor 41 communicates with the memory 42 through the bus 43, so that the processor 41 executes the execution instructions mentioned in the above method embodiments.

[0172] For the specific execution process of the above instructions, reference can be made to the steps of the exception information processing method described in the embodiments of the present disclosure, which will not be elaborated here.

[0173] The embodiments of the present disclosure also provide a computer-readable storage medium, on which a computer program is stored. When the computer program is run by a processor, it executes the steps of the exception information processing method described in the above method embodiments. Among them, the storage medium can be a volatile or non-volatile computer-readable storage medium.

[0174] The computer program product of the exception information processing method provided by the embodiments of the present disclosure includes a computer-readable storage medium storing program codes. The instructions included in the program codes can be used to execute the steps of the exception information processing method described in the above method embodiments. For details, reference can be made to the above method embodiments, which will not be elaborated here.

[0175] The computer program product can be specifically implemented in a manner of hardware, software, or a combination thereof. In an optional embodiment, the computer program product is specifically embodied as a computer storage medium. In another optional embodiment, the computer program product is specifically embodied as a software product, such as a Software Development Kit (SDK), etc.

[0176] Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working process of the above-described device can refer to the corresponding process in the foregoing method embodiments, which will not be elaborated here. In the several embodiments provided by the present disclosure, it should be understood that the disclosed device and method can be implemented in other ways. The device embodiments described above are only illustrative. For example, the division of the units is only a logical function division, and there can be other division methods in actual implementation. For another example, multiple units or components can be combined, or some features can be ignored, or not executed. Another point is that the displayed or discussed coupling or direct coupling or communication connection to each other can be through some communication interfaces. The indirect coupling or communication connection of the device or unit can be in an electrical, mechanical or other form.

[0177] The unit described as a separation component may or may not be physically separated. The component shown as a unit may or may not be a physical unit, that is, it may be located in one place or may be distributed over multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0178] In addition, in each embodiment of the present disclosure, each functional unit may be integrated in a processing unit, may exist separately as individual physical units, or two or more units may be integrated in one unit.

[0179] If the described function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a non-volatile computer-readable storage medium executable by a processor. Based on such an understanding, the technical solution of the present disclosure, in essence, or the part that contributes to the prior art, or a part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the methods described in each embodiment of the present disclosure. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read-only memories (ROM), random access memories (RAM), magnetic disks, or optical discs that can store program codes.

[0180] Finally, it should be noted that the above-described embodiments are only specific implementation manners of the present disclosure, used to illustrate the technical solutions of the present disclosure, and are not intended to limit them. The protection scope of the present disclosure is not limited thereto. Although the present disclosure has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: any person skilled in the art within the technical scope disclosed by the present disclosure can still modify the technical solutions recorded in the foregoing embodiments, or can easily think of changes, or perform equivalent replacements on some of the technical features; and these modifications, changes, or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure, and should all be covered within the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be subject to the protection scope of the claims.

Claims

1. An abnormal information processing method, characterized in that, including: Obtaining exception address stack information generated during the operation of the application; The application is developed based on the flutter application development framework; According to the exception address stack information, determining the parsing address information corresponding to each line of sub-address stack information in the exception address stack information; For each of the sub-address stack information, if any of the multiple cache spaces does not store the sub-code stack information associated with the parsing address information corresponding to the sub-address stack information, then call the stack parsing service, and based on the parsing address information and the stack restoration information corresponding to the application, restore the sub-code stack information corresponding to the sub-address stack information; Wherein, the determining the parsing address information corresponding to each line of sub-address stack information in the exception address stack information according to the exception address stack information includes: Performing stack parsing on the exception address stack information to determine the stack header information and address stack information corresponding to the exception address stack information, and splitting each line of sub-address stack information from the address stack information; For each line of sub-address stack information, based on the sub-address stack information and the stack header information, determining the parsing address information corresponding to the sub-address stack information.

2. The method according to claim 1, wherein The calling the stack parsing service to restore the sub-code stack information corresponding to the sub-address stack information based on the parsing address information and the stack restoration information corresponding to the application includes: Calling the stack parsing service, and using the hash algorithm to determine a target instance for processing the parsing address information from the parsing instances in which the stack parsing service runs based on the parsing address information; Using the target instance, based on the parsing address information and the stack restoration information corresponding to the application, restoring the sub-code stack information corresponding to the sub-address stack information.

3. The method according to claim 2, wherein The using the target instance to restore the sub-code stack information corresponding to the sub-address stack information based on the parsing address information and the stack restoration information corresponding to the application includes: Determining whether there is a first target parsing process matching the parsing address information among the created parsing processes currently existing in the target instance; In the case where the first target parsing process exists in the target instance, using the first target parsing process to perform stack restoration on the parsing address information based on the stack restoration information that has been loaded and completed in the first target parsing process, to obtain the sub-code stack information corresponding to the sub-address stack information.

4. The method according to claim 3, characterized in that The method further includes: In the case where the first target parsing process does not exist in the target instance, creating a second target parsing process matching the parsing address information in the target instance, and loading the stack restoration information generated and stored during the compilation of the application in the second target parsing process; Using the second target parsing process to perform stack restoration on the parsing address information based on the loaded stack restoration information, to obtain the sub-code stack information corresponding to the sub-address stack information.

5. The method according to claim 4, characterized in that, The multiple cache spaces include a local cache space and a persistent remote storage space; After using the second target parsing process to perform stack restoration on the parsed address information based on the loaded stack restoration information to obtain the sub-code stack information corresponding to the sub-address stack information, the following steps are further included: Taking the parsed address information and the obtained sub-code stack information as key-value pairs, and storing them in the local cache space and the persistent remote storage space, where the parsed address information serves as the key in the key-value pair, and the sub-code stack information serves as the value in the key-value pair; the local cache space is the local cache space corresponding to the server that receives the abnormal address stack information; the persistent remote storage space is used to store key-value pairs corresponding to multiple servers.

6. The method according to claim 4, wherein After using the first target parsing process to perform stack restoration on the parsed address information based on the stack restoration information that has been loaded in the first target parsing process to obtain the sub-code stack information corresponding to the sub-address stack information, the following steps are further included: Updating the recently used time information of the first target parsing process stored using the least recently used (LRU) algorithm; The step of creating a second target parsing process that matches the parsed address information in the target instance includes: When the number of created parsing processes in the target instance meets the preset number, screening out the least recently used created parsing process from multiple created parsing processes according to the recently used time information corresponding to each created parsing process; Deleting the least recently used created parsing process and creating a second target parsing process that matches the parsed address information in the target instance.

7. The method according to claim 5, characterized in that The method further includes the step of determining whether any of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information: Taking the parsed address information corresponding to the sub-address stack information as a query key, and sequentially determining whether there is a target key-value pair that matches the query key from the key-value pairs already stored in the local cache space and the persistent remote storage space respectively according to the query priorities corresponding to the multiple cache spaces; When it is determined that there is no such target key-value pair, it is determined that none of the multiple cache spaces stores sub-code stack information associated with the parsed address information corresponding to the sub-address stack information.

8. The method according to claim 7, characterized in that The method further includes: When it is determined that there is a target key-value pair, taking the sub-code stack information indicated by the value in the target key-value pair as the sub-code stack information corresponding to the sub-address stack information.

9. An abnormal information processing device, characterized in that, It includes: An acquisition module, configured to acquire abnormal address stack information generated during the operation of the application; The application is developed based on the flutter application development framework; A determination module, configured to determine the parsed address information corresponding to each line of sub-address stack information in the abnormal address stack information according to the abnormal address stack information; A restoration module, for each of the sub-address stack information, if any of the multiple cache spaces does not store the sub-code stack information associated with the parsed address information corresponding to the sub-address stack information, then call the stack parsing service, and based on the parsed address information and the stack restoration information corresponding to the application, restore the sub-code stack information corresponding to the sub-address stack information; Wherein, when the determination module executes to determine the parsed address information corresponding to each line of sub-address stack information in the exception address stack information, it is configured to: Perform stack parsing on the exception address stack information to determine the stack header information and the address stack information corresponding to the exception address stack information, and split each line of sub-address stack information from the address stack information; For each line of sub-address stack information, based on the sub-address stack information and the stack header information, determine the parsed address information corresponding to the sub-address stack information.

10. A computer device, characterized in that, Includes: A processor and a memory, the memory stores machine-readable instructions executable by the processor, the processor is configured to execute the machine-readable instructions stored in the memory, and when the machine-readable instructions are executed by the processor, the processor executes the steps of the exception information processing method according to any one of claims 1 to 8.

11. A computer-readable storage medium, characterized in that, A computer program is stored on the computer-readable storage medium, and when the computer program is run by a computer device, the computer device executes the steps of the exception information processing method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Security enhancement method for third-party code of Android application program

    CN104992081A

  • Memory leakage point locating method, apparatus and system, and readable storage medium

    CN107608885A