A program crash reason positioning method, device, equipment, medium and product

By classifying and analyzing data items of program crash information from multiple clients and calculating the probability of causes, this method solves the problems of slow and insufficient ability in locating the causes of program crashes in traditional methods, and enables rapid identification of causes such as program conflicts and driver conflicts.

CN115237741BActive Publication Date: 2025-11-07TENCENT CLOUD COMPUTING (BEIJING) CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110438981.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-22
Publication Date
2025-11-07
Estimated Expiration
2041-05-05

AI Technical Summary

Technical Problem

Traditional methods for locating program crashes are slow and lack sufficient localization capabilities, failing to effectively identify causes other than code defects, such as program conflicts and driver conflicts.

Method used

By collecting program crash information from multiple clients, classifying and processing it, obtaining client identifiers and program crash data items of terminal devices, calculating the cause probability of the data items, and identifying the main object causing the program crash.

Benefits of technology

It improves the ability to locate the cause of program crashes, especially to identify non-code defect causes such as program conflicts and driver conflicts, thus improving the speed and accuracy of the location.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115237741B_ABST
    Figure CN115237741B_ABST
Patent Text Reader

Abstract

Embodiments of the present application disclose a program crash reason positioning method, device, equipment, medium and product, wherein the method comprises: obtaining program crash information of a first program from each client in a plurality of clients; performing classification processing on the obtained plurality of program crash information to obtain at least one information group; determining a client identifier of a client to which each program crash information included in a target information group belongs, and obtaining a preset number of client identifiers from the determined client identifiers; obtaining at least one program crash data item from each terminal device; obtaining a cause probability of an object indicated by each program crash data item in the at least one program crash data item; determining an object whose cause probability is greater than a first probability threshold, and taking the determined object as a program crash reason of the first program. The above-mentioned program crash reason positioning method improves the positioning capability of the program crash reason.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of computers, and in particular to a program crash cause positioning method, device, equipment, medium and product. BACKGROUND

[0002] When a user terminal runs an application program, a program crash may occur, at which time the cause of the program crash needs to be found. Using a traditional program crash cause finding method not only finds slowly, but also can only find program crashes caused by program code errors, and the program crash cause positioning capability is weak. Therefore, how to improve the positioning capability of the program crash cause has become a research hotspot. SUMMARY

[0003] The embodiments of the present application provide a program crash cause positioning method, device, equipment, medium and product, which can improve the positioning capability of the program crash cause.

[0004] In one aspect, the embodiments of the present application provide a program crash cause positioning method, comprising:

[0005] obtaining program crash information of a first program from each client in a plurality of clients;

[0006] classifying the obtained plurality of program crash information to obtain at least one information group, each information group comprising at least one program crash information;

[0007] determining a client identifier of a client to which each program crash information included in a target information group belongs, and obtaining a preset number of client identifiers from the determined client identifiers, the target information group being any information group in the at least one information;

[0008] obtaining at least one program crash data item from each terminal device, the each terminal device being a terminal device running a client corresponding to the obtained client identifier;

[0009] obtaining a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program;

[0010] determining an object whose cause probability is greater than a first probability threshold, and taking the determined object as the program crash cause of the first program.

[0011] In one aspect, the embodiments of the present application provide a program crash cause positioning device, comprising:

[0012] an obtaining unit, configured to obtain program crash information of a first program from each client in a plurality of clients;

[0013] a classification unit, configured to perform classification processing on the obtained program crash information, to obtain at least one information group, each information group comprising at least one program crash information;

[0014] a determination unit, configured to determine a client identifier of a client to which each program crash information comprised in a target information group belongs, and to obtain a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information group;

[0015] the obtaining unit is further configured to obtain at least one program crash data item from each terminal device, the each terminal device being a terminal device running a client corresponding to the obtained client identifier;

[0016] the obtaining unit is further configured to obtain a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program;

[0017] the determination unit is further configured to determine an object whose cause probability is greater than a first probability threshold, and to take the determined object as the program crash cause of the first program.

[0018] In one aspect, an embodiment of the present application provides a program crash cause positioning device, comprising:

[0019] a processor, adapted to implement one or more computer programs;

[0020] a computer storage medium, the computer storage medium storing one or more computer programs, the one or more computer programs being adapted to be loaded and executed by the processor:

[0021] Obtain program crash information of a first program from each of a plurality of clients; perform classification processing on the obtained plurality of program crash information to obtain at least one information group, each information group including at least one program crash information; determine a client identifier of a client to which each program crash information included in a target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information; obtain at least one program crash data item from each terminal device, each terminal device being a terminal device running a client corresponding to the obtained client identifier; obtain a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program; and determine an object whose cause probability is greater than a first probability threshold, and take the determined object as a program crash cause of the first program.

[0022] In one aspect, the embodiment of the present application provides a storage medium, characterized in that the storage medium stores one or more instructions, and the one or more instructions are adapted to be loaded and executed by the processor:

[0023] Obtain program crash information of a first program from each of a plurality of clients; perform classification processing on the obtained plurality of program crash information to obtain at least one information group, each information group including at least one program crash information; determine a client identifier of a client to which each program crash information included in a target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information; obtain at least one program crash data item from each terminal device, each terminal device being a terminal device running a client corresponding to the obtained client identifier; obtain a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program; and determine an object whose cause probability is greater than a first probability threshold, and take the determined object as a program crash cause of the first program.

[0024] In one aspect, the embodiment of the present application provides a computer program product or a computer program, the computer program product including a computer program stored in a computer storage medium; a processor reads the computer program from the computer storage medium, and the processor executes the computer program, so that a program crash cause positioning device executes:

[0025] Obtain program crash information of the first program from each of the plurality of clients; classify the obtained plurality of program crash information to obtain at least one information group, each information group including at least one program crash information; determine a client identifier of a client to which each program crash information included in a target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information; obtain at least one program crash data item from each terminal device, the terminal device being a terminal device running a client corresponding to the obtained client identifier; obtain a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program; and determine an object whose cause probability is greater than a first probability threshold, and take the determined object as a program crash cause of the first program.

[0026] Embodiments of the present application obtain program crash information generated when the first program crashes, and obtain program crash data items on terminal devices to which client identifiers corresponding to the program crash information belong based on the client identifiers, and calculate a probability that an object indicated by the program crash data items causes the first program to crash based on a number of terminal devices to which the program crash data items belong. Since the program crash data items can be program process information, system version information, code defect positions, and the like, the embodiments of the present application expand the positioning range of program crash causes, and thus improve the positioning capability of program crash causes. BRIEF DESCRIPTION OF DRAWINGS

[0027] To make the technical solutions of the embodiments of the present application clearer, the drawings needed in the embodiment description will be briefly introduced. Obviously, the drawings in the following description are some embodiments of the present application, and other drawings can be obtained by those skilled in the art without any creative effort.

[0028] Figure 1 is a schematic structural diagram of a program crash cause positioning system provided by an embodiment of the present application;

[0029] Figure 2 is a schematic flowchart of a program crash cause positioning method provided by an embodiment of the present application;

[0030] Figure 3a is another schematic flowchart of a program crash cause positioning method provided by an embodiment of the present application;

[0031] Figure 3b is a schematic diagram of a program crash information classification method provided by an embodiment of the present application;

[0032] Figure 4 is a flowchart of another method for locating a program crash cause provided by an embodiment of the present application;

[0033] Figure 5 is a flowchart of another method for locating a program crash cause provided by an embodiment of the present application;

[0034] Figure 6 is a structural diagram of a device for locating a program crash cause provided by an embodiment of the present application;

[0035] Figure 7 is a structural diagram of a device for locating a program crash cause provided by an embodiment of the present application. DETAILED DESCRIPTION

[0036] When a program runs on a terminal device, a program crash may occur. There are two traditional methods for locating a program crash cause. One is to collect crash information based on user feedback, remotely debug and find the cause on the terminal device. This method is slow and the progress of locating is uncertain. The other is to use a crash dump mechanism provided by a computer operating system to store process memory information at the time of program crash into a dump file, collect the dump file and analyze the dump file by using a special analysis tool to locate the program crash cause. The dump file can be a process memory image that can be used to save the execution state and stack information of a first program. When the first program runs abnormally or crashes on the terminal device, the crash dump mechanism can be used to generate a dump file, and the dump file in the terminal device environment can be copied to a development machine of a developer for debugging, so that the cause of the abnormal running or crash of the first program can be analyzed. This method can only obtain stack information at the time of program crash and the cause of the crash related to code defects (for example, stack overflow and null pointer). However, the cause of program crash not only includes code defects of the program itself, but also includes program conflicts and driver conflicts (for example, a bd0001.sys driver causes a chrome browser program to crash). In this case, the traditional method for locating a program crash cause is difficult to quickly locate the real cause.

[0037] Based on the above description, the embodiment of the present application provides a positioning method of program crash reason, which can be applied to various scenarios of finding the reason of program crash, such as the method can be applied to the computer housekeeper product. The positioning method of program crash reason provided by the embodiment of the present application collects program crash information generated due to the first program crash from a plurality of clients, then classifies the program crash information to obtain category attribute information of the plurality of program crash information (the category attribute information is used to indicate the category of the program crash reason of the first program corresponding to each program crash information, such as program conflict caused crash, or code defect caused crash, etc.), each category attribute information corresponds to at least one program crash information, then based on the at least one program crash information corresponding to each category attribute information, obtains program crash data items (such as program process information, driver information, code module information, etc.) on the terminal device to which the client corresponding to each program crash information belongs, and calculates the correlation between each program crash data item and the program crash (i.e. the probability of each program crash data item causing the program crash), according to the strength of the correlation, the program crash data item having strong correlation with the event of the first program crash can be found, and the positioning of the program crash reason is completed.

[0038] The positioning method of program crash reason provided by the technical scheme of the present application is realized based on the calculation of the correlation between the program crash data item and the program crash. The method can further improve the positioning ability of the program crash reason on the basis of the traditional method, especially the positioning ability of the program crash reason caused by the program conflict, driver conflict and other conflicts, which brings great convenience to the related users. For example, the method enables the software development engineer to more easily solve the program crash problem of the software on the terminal device.

[0039] The positioning method of program crash reason provided by the embodiment of the present application can be applied to Figure 1The shown program crash reason positioning system. The system includes a server 11 and at least one client 12, wherein the client 12 can run in a terminal, and the terminal running the client 12 can be directly or indirectly connected with the server 11 through wired or wireless means, and the embodiments of the present application do not limit here. Among them, the terminal running the client 12 includes but is not limited to smart phones, smart speakers, tablets, laptops, desktop computers, smart watches, etc., and the server 11 can be a standalone physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content distribution networks (Content Delivery Network, CDN), and big data and artificial intelligence platforms, etc. Basic cloud computing services such as platform.

[0040] Based on the above program crash reason scheme, the embodiments of the present application provide a program crash reason positioning method, which can be executed by the above-mentioned server; please refer to Figure 2 As shown, the method comprises:

[0041] S201, obtaining program crash information of a first program from each of a plurality of clients.

[0042] In one embodiment, the program crash information is generated when the first program crashes during running, and the server can obtain the reason category of the crash of the first program (i.e. the category attribute information of the program crash information) based on the program crash information, wherein each program crash information corresponds to a client. Exemplarily, the program crash information can be a dump file. The server obtains the program crash information of the first program from each client, which can specifically include that the server obtains the client identifier of each client and at least one program crash information corresponding to the client identifier.

[0043] In specific embodiments, the server can obtain at least one dump file from each client, so that when the server obtains the program crash information of the first program from each of the plurality of clients, it can obtain a plurality of dump files. For example, assume that ten clients have program crashes when running application A and generate corresponding dump files (i.e. program crash information). Then, the server can obtain at least one dump file from each of the ten clients, and when the server obtains the dump files of the ten clients, it can obtain at least ten dump files.

[0044] S202, classify the obtained multiple program crash information to obtain at least one information group.

[0045] In one embodiment, the server can add program crash information with the same category attribute information in the multiple program crash information to the same information group to obtain at least one information group by obtaining the category attribute information of each program crash information in the multiple program crash information. Each information group includes at least one program crash information, and each program crash information in the information group corresponds to a category attribute information.

[0046] In specific embodiments, the category attribute information may, for example, be: a program conflict category (program crash information caused by program conflict), a system version incompatibility category (program crash information caused by the system used by the terminal device where the first program is located not supporting the running of the first program, thereby causing the first program to crash), a code defect category (program crash information caused by other programs injecting a piece of code into the first program to run, thereby causing the first program to crash), and the like. Further, the server can add program crash information with the same category attribute information in the multiple program crash information to the same information group, which may, for example, be: adding program crash information with the category attribute information of "program conflict category" to one information group, and adding program crash information with the category attribute information of "version incompatibility category" to another information group.

[0047] In one embodiment, the program crash information can include thread information, code location, and stack information when the first program crashes. The server can obtain the category attribute information of each program crash information in the multiple program crash information in the following manner: the server obtains and combines the thread information, code location, and stack information in the program crash information, and then uses a classification algorithm to perform classification calculation on each program crash information to obtain the category attribute information of each program crash information.

[0048] In specific embodiments, the server can use a hash algorithm (such as MD5, which is a message digest algorithm) to perform classification calculation according to the information (thread information, code location, and stack information) obtained from the program crash information to obtain the hash value of the program crash information, and use the hash value as the category value of the program crash information. It can be understood that in other embodiments, the server can use other classification algorithms (such as decision tree classification, naive Bayes classification algorithm, etc.) to classify the obtained multiple program crash information, and the embodiments of the present application do not limit this.

[0049] Further, the server adds the program crash information with the same category attribute information in the plurality of program crash information to the same information group, which can be specifically: the server divides the program crash information with the same category value in the plurality of program crash information to the same information group (i.e., the server classifies the program crash information according to the category value, and each category corresponds to an information group). For example, it is assumed that the server obtains three program crash information (program crash information 1, program crash information 2 and program crash information 3). If the category value of the program crash information 1 and the program crash information 2 is A, and the category value of the program crash information 3 is B, then the server can add the program crash information 1 and the program crash information 2 to an information group (such as information group 1), and add the program crash information 3 to an information group (such as information group 2), to obtain two information groups. For example, the information group 1 can be represented as

program crash information 1, program crash information 2

program crash information 3

[0050] In S203, the server determines the client identifier of each program crash information included in the target information group, and obtains a preset number of client identifiers from the determined client identifiers.

[0051] In one embodiment, the server can first determine the target information group from the at least one information group, and then determine the client identifier of each program crash information included in the target information group, and obtain a preset number (such as M, M is a positive integer) of client identifiers from all the determined client identifiers. For example, the server can obtain a preset number of client identifiers from all the determined client identifiers in the following way: the server randomly obtains a preset number of client identifiers from all the determined client identifiers. The target information group can be any information group in the at least one information group. Based on practical experience, when M is greater than 5, the server has better positioning effect on the program crash reason.

[0052] In S204, the server obtains at least one program crash data item from each terminal device.

[0053] In one embodiment, each terminal device refers to the terminal device to which each client identifier belongs, based on a preset number of client identifiers obtained during the execution. The server can obtain at least one program crash data item from each terminal device. The program crash data item refers to data generated by each terminal device during the time period when the first program crashes. For example, code information of a second program that is also running when terminal device A is running the first program; or system version information used by the terminal device when running the first program; or program process information existing in the terminal device during the time period when the first program crashes, etc. Here, program process information refers to process information about the second program generated by each terminal device during the time period when the first program crashes; further, each program process information indicates the second program; the second program refers to the program that was running in each terminal device when the first program crashed. For example, the time period when the first program crashes can be, for example, the period from 3 seconds before the first program crashes to 3 seconds after the first program crashes (a total of 6 seconds).

[0054] In a specific embodiment, the server can, based on a predetermined number of client identifiers, search the database for at least one program crash data item corresponding to the terminal device where the client of each client identifier is located. For example, suppose the server obtains two client identifiers (i.e., the predetermined number is 2) from the target information group, namely client01 and client02; and the client with client identifier client01 runs on terminal device 1, and the client with client identifier client02 runs on terminal device 2. Then, the server can use the client identifier client01 to query the database for at least one program crash data item corresponding to terminal device 1; the server can also use the client identifier client02 to query the database for at least one program crash data item corresponding to terminal device 2.

[0055] S205, obtain the cause probability of the object indicated by each program crash data item in at least one program crash data item.

[0056] In one embodiment, before the server obtains the causal probability of the object indicated by each program crash data item in at least one program crash data item, the server may determine the target program crash data item from all obtained program crash data items and obtain the number of terminal devices to which the target program crash data item belongs; wherein each program crash data item indicates an object, and the object indicated by the target program crash data item is the same as the object indicated by each program crash data item.

[0057] In a specific embodiment, the object indicated by the target program crash data item is the same as the object indicated by each program crash data item, and it can be understood that the program crash data item pointing to the same object in all program crash data items is the target program crash data item, and there can be more than one target program crash data item. For example, assume that the server obtains program process information a1 corresponding to application program A and program process information b1 corresponding to application program B from terminal 1, obtains system version information c1 corresponding to system C and program process information b1 corresponding to application program B from terminal device 2, and obtains system version information c2 corresponding to system C from terminal device 3. Then, the target program crash data item indicating the object “application program A” is program process information a1, and the target program crash data item indicating the object “system C” is system version information c1 and system version information c2.

[0058] In one embodiment, when the target program crash data item is program process information, the server obtains the number of terminal devices to which the target program crash data item belongs, which can be specifically achieved by obtaining the number of terminal devices in which the second program indicated by the target program process information is located. Specifically, when there is only one program process information corresponding to the second program in the terminal device in which the second program exists (i.e., there is only one program process information of the same second program in each terminal device), the number of terminal devices in which the second program is located can be the number of target program process information. For example, assume that program process information a1 is obtained by the server from terminal device 1, and the indicated second program is program A, and program process information a2 is obtained by the server from terminal device 2, and the indicated second program is also program A. Then, the number of target program crash information indicating the second program as program A is 2, and the number of terminal devices to which the target program crash information belongs is also 2 (terminal device 1 and terminal device 2).

[0059] In other embodiments, it can be understood that the second program indicated by different program process information in the same terminal device can be the same program, for example, when two accounts of the same program A are logged in on the same terminal device, there will be two different program process information of the program A on the terminal device. Based on this, when the objects indicated by the two program process information (the two program process information are different) in the same terminal device are the same second program, the number of terminal devices can be the number of terminal devices where the target program process information is located after deduplication. For example, it is assumed that the server obtains two program process information (program process information 1 and program process information 2) from terminal device 1, and the program indicated by the program process information 1 is program A, and the program indicated by the program process information 2 is also program A; the server also obtains program process information 3 from terminal device 2, and the program indicated by the program process information 3 is also program A. Then, the number of target program crash information indicating the second program as program A is 3, and before deduplication, the terminal devices to which the target program crash information belongs include terminal device 1, terminal device 1 and terminal device 2, and correspondingly, the number of terminal devices before deduplication is 3; after deduplication, the terminal devices include terminal device 1 and terminal device 2, and correspondingly, the number of terminal devices after deduplication is 2, therefore, in this example, the number of terminal devices to which the target program crash information belongs is 2.

[0060] In one embodiment, after the server obtains the number of terminal devices to which the target program crash data item belongs, the server can obtain the cause probability of the object indicated by the target program crash data item according to the number of terminal devices and a preset number. For example, the cause probability can be the ratio P between the number m (m is a positive integer) of terminal devices to which the target program crash data item belongs and the number of terminal devices to which the preset number M (M is a positive integer) of client identifiers belong. It is not difficult to understand that the number of terminal devices to which the preset number M (M is a positive integer) of client identifiers belong can also be M, and then the cause probability P = M / m, and 1≥P>0. For example, if the server obtains program crash data items indicating the object as program A from 3 different terminal devices among 10 terminal devices to which the client identifiers belong, then the cause probability of A is 0.3 (3 / 10=0.3).

[0061] S206, determining the object whose cause probability is greater than the first probability threshold, and taking the determined object as the crash cause of the first program.

[0062] ​In one embodiment, the first probability threshold can be pre-set by the server, which measures the likelihood that the object pointed to by the target program crash data item is the source of the first program crash. For example, the first probability threshold can be a lower limit threshold for a ratio, such as 70%. If the causal probability is greater than (or greater than or equal to) the first probability threshold, then the object corresponding to that causal probability is considered to be highly likely to be the source of the first program crash. In a specific embodiment, the closer the causal probability of the target program crash data item is to 1, the greater the probability that the object pointed to by the target program crash data item is the cause of the first program crash.

[0063] In another embodiment, the first probability threshold can be determined based on the number of multiple clients and the number of terminal devices to which the target program crash data item belongs. Specifically, before determining the object whose cause probability is greater than the first probability threshold, the server first obtains a reference probability based on the number of multiple clients and the number of terminal devices to which the target program crash item belongs; then, the server determines the first probability threshold based on the reference probability. Here, the number of multiple clients refers to the number of clients used by the server when obtaining the program crash information. For example, if in step S201, the server obtains the program crash information of the first program from each of four clients, then the "number of multiple clients" is four.

[0064] In a specific embodiment, the reference probability (denoted as Q) can be the ratio of the number of terminals to which the target program crash data item belongs (denoted as m, where m is a positive integer) to the number of multiple clients (denoted as n, where n ≥ m, and n is a positive integer) (i.e., Q = Furthermore, the first probability threshold (denoted as R, R>0) can be q times the reference probability (q is a positive integer). For example, the first probability threshold is twice the reference probability, i.e., R=2Q. It is easy to understand that since the reference probability Q is related to the number of terminals mentioned in the target program crash item, the first probability threshold R or reference probability Q corresponding to different target program crash data items may be different (i.e., the first probability threshold or reference probability may be different for different objects). For example, suppose the first probability threshold is twice the reference probability; if the number of multiple clients is 10, the number of terminal devices corresponding to the preset number of client identifiers is 5, the number of terminal devices to which the target program crash data item A belongs is 1, and the object indicated by the target program crash data item A is a. Then, the server can calculate the reference probability of object a as 0.1 (i.e., 1 / 10=0.1) and the cause probability as 0.2 (i.e., 1 / 5=0.2), and thus determine the first probability threshold as 0.2 (i.e., 2*0.2).

[0065] In yet another embodiment, before the server obtains the reference probability according to the number of the plurality of clients and the number of the terminal devices to which the target program crash item belongs, the server can first determine the target object indicated by the program crash data item whose cause probability is greater than the second probability threshold. Then, the server determines the number of the terminal devices to which the target object belongs, and obtains the reference probability of the target object based on the number of the terminal devices to which the target object belongs and the number of the plurality of clients.

[0066] In one embodiment, after the server determines the first probability threshold according to the reference probability, the server can regard the object indicated by the target program crash data item whose cause probability is greater than the first probability threshold as the crash cause of the first program.

[0067] Based on the above description of the embodiments, it is not difficult to understand that when the program crash information is a dump file, the method provided by the embodiments of the present application can refer to the method shown in Figure 3a . Among them, "dump file collection" is mainly that the server (such as a cloud server) collects dump files generated when the program crashes based on a plurality of clients, obtains a plurality of dump files, and then the server stores the plurality of dump files; "dump file classification" is mainly that the server classifies the above plurality of dump files according to the method shown in Figure 3b , for example, the classification principle can be: classifying program crashes caused by the same reason into the same category, for example: classifying dump files in which the data corresponding to the Accessviolation (illegal access, which can refer to Figure 3b ) field in the plurality of dump files is the same into the same category, wherein the same reason can be, for example, a crash caused by code implantation, a crash caused by program conflict, etc.; "dump file relevance calculation" is that the server calculates the cause probability of the object pointed to by each key data (i.e., all program crash data items) in all dump files corresponding to all key data in a certain category, and then obtains the analysis result (the analysis result includes: the data item in the dump category that has a strong correlation with the program crash), and the key data is obtained by the server from the terminal device to which the client belongs based on the client identifier of the client.

[0068] The method for locating the program crash reason provided by the embodiment of the present application can obtain multiple information groups by classifying the obtained program crash information, and each information group corresponds to a category attribute information; then the target information group is determined, and at least one program crash data item of the terminal device where the client corresponding to the client identifier of each program crash information in the target information group is located is obtained, then the probability of each program crash data item causing the first program crash in the at least one program crash data item is calculated, the program crash data item with a larger probability is determined, and then the cause of the program crash (i.e. the object pointed to by the program crash data item) is determined. Since the program crash data can be system version information or code defects, etc., the cause of the program crash located by the method provided by the embodiment of the present application can be the system version, the code position, etc., and the locating capability of the program crash reason is improved.

[0069] Please refer to Figure 4 , Figure 4 is another method for locating the program crash reason provided by the embodiment of the present application, as shown in Figure 4 , the method comprises:

[0070] S401, obtaining the program crash information of the first program from each client in the multiple clients.

[0071] In one embodiment, based on the description of the related embodiments in step S201, the server can obtain the relationship data set based on the client identifier and the at least one program crash information obtained from each client, and each element in the set can be expressed as

client identifier, program crash information

[0072] In the specific embodiment, it is assumed that the server needs to obtain the program crash information of the first program from the client A (the client identifier is client_A) and the client B (the client identifier is client_B). Then, if the server obtains the program crash information 1 from the client A and obtains the program crash information 2 and the program crash information 3 from the client B, the server can obtain the relationship data set {

client_A, program crash information 1

client_B, (program crash information 2, program crash information 3)

[0073] S402, classifying the obtained multiple program crash information to obtain at least one identification group.

[0074] In one embodiment, as known from the foregoing, each program crash information corresponds to a category attribute information, and each program crash information corresponds to a client identifier. Then, when performing the classification processing on the obtained multiple program crash information, the server can specifically add the client identifiers corresponding to the program crash information with the same category attribute information to the same identifier group (i.e., an identifier group is a client identifier set). After performing the classification processing on the obtained multiple program crash information, the server can obtain at least one identifier group, and different identifier groups correspond to different category attribute information. For example, assume that the category attributes of program crash information 1 and program crash information 2 are the same (assume that the category attribute information is A), the category attributes of program crash information 3 and program crash information 4 are the same (assume that the category attribute information is B), and program crash information 1 and program crash information 4 correspond to the client identifier client_01, program crash information 2 corresponds to the client identifier client_02, and program crash information 3 corresponds to the client identifier client_03. Then, the server can add program crash information 1 and program crash information 2 to the same identifier group (assume that it is identifier group 1, and the category attribute information corresponding to identifier group 1 is A), and the obtained identifier group 1 can be represented as

client_01, client_02

client_01, client_03

[0075] Further, in one embodiment, after performing the classification processing on the obtained multiple program crash information, the server can generate a category set based on the obtained at least one identifier group and the category attribute information corresponding to each identifier group, and each element in the category set includes an identifier group and a category attribute information. For example, the element in the category set can be represented as

category attribute information, identifier group

category attribute information, client identifier set

[0076] For example, it is assumed that the server obtains program crash information 1 on a client identified as client_01, program crash information 2 on a client identified as client_02, and program crash information 3 on a client identified as client_03. If the category attribute information of the program crash information 1 and the program crash information 2 is A, and the category attribute information of the program crash information 3 is B, then the category set obtained by the server after classifying the three program crash information is {

A, (client_01, client_02)

B, client_03

A, (client_01, client_02)

B, client_03

[0077] S403, determine all client identifications included in the target identification group, and obtain a preset number of client identifications from the determined all client identifications.

[0078] In an embodiment, the target identification group can be any one of the at least one annotation group, and the server can obtain a preset number of client identifications from all client identifications included in the target identification group after determining the target identification group from the at least one identification group.

[0079] S404, obtain at least one program crash data item from each terminal device.

[0080] In an embodiment, the server can establish a corresponding relationship between the client identification and the at least one program crash data item obtained based on the client identification, to obtain

client identification, program crash data item

client identification, program crash data item

client identification, program crash data item

client01, (program process information A, code information B)

[0081] S405, obtain the cause probability of the object indicated by each program crash data item in the at least one program crash data item.

[0082] In one embodiment, based on the description of the related embodiments in step S205, when obtaining the number of terminal devices to which the target program crash data item belongs, the server can first perform grouping processing on the obtained "at least one program crash data item" (the grouping can be, for example, dividing the program crash data items indicating the same object as the same data group), and obtaining at least one data group. Exemplarily, each data group can include the object (hereinafter referred to as: data object) indicated by the program crash data item and the number of terminal devices, and be expressed as:

data object, the number of terminal devices where the second program is located

[0083] In specific embodiments, when the program crash data item is program process information (indicating the object is a second program), if there is only one program process information corresponding to the second program in the terminal device where the second program exists (i.e., there is only one program process information of the same second program in each terminal device), a data group can be expressed as

second program, the number of target program process information

program A, 2

[0084] Correspondingly, when there are two program process information (two program process information are different) indicating the same second program in the same terminal device, a data group can be expressed as

second program, the number of terminal devices where the second program is located after deduplication

program A, 1

[0085] In one embodiment, after obtaining the number of terminal devices to which the target program crash data item belongs, the server determines the causal probability of the object indicated by the target program crash data item based on the number of terminal devices and a preset number. Specifically, after obtaining "at least one data group," the server calculates the causal probability of the data object in each data group and stores each data object and its corresponding causal probability accordingly, resulting in a probability set. For example, each element in the probability set can be represented as [data object, causal probability of the data object], such as [second program A, 50%]. The specific implementation of the server determining the causal probability of the object indicated by the target program crash data item based on the number of terminal devices and the preset number can be found in step S205 and will not be repeated here.

[0086] S406, identify objects whose cause probability is greater than the first probability threshold, and use the identified objects as the cause of the first program crash.

[0087] In one embodiment, based on the description of step S206, the specific implementation of the server determining the target object indicated by the program crash data item whose cause probability is greater than the second probability threshold can be as follows: the server determines data objects in the probability set whose "cause probability of data object" is greater than the second probability threshold.

[0088] The method for locating the cause of program crashes provided in this embodiment of the invention classifies the client identifiers corresponding to the obtained program crash information to obtain multiple identifier groups, and each identifier group corresponds to a category attribute information; then, a target identifier group is determined, and at least one program crash data item of the terminal device to which the client identifier corresponding to each program crash information in the target identifier group belongs is obtained; then, by calculating the probability that each program crash data item in the at least one program crash data item causes the first program crash, the program crash data item with a higher probability is determined, and thus the cause of the program crash (i.e., the object pointed to by the program crash data item) is determined. Since program crash data may be system version information or code defects, the cause of the program crash located by the method provided in this embodiment of the invention may be system version, code location, etc., thus improving the ability to locate the cause of program crashes.

[0089] based on Figure 2 or Figure 4 Regarding the method for locating the cause of program crashes, this application provides the following method for determining the target information group:

[0090] In one embodiment, the server can simultaneously target each of the at least one information group, and the server can process the at least one information group in parallel. Specifically, the server can generate a process (it can be understood that different information groups correspond to different processes, and the processes do not interfere with each other during execution) according to each of the at least one information group, and execute steps S203 to S206 (or steps S403 to S406) in each process based on the information group corresponding to the process. For example, assuming there are three information groups (information group 1, information group 2, and information group 3), the server can generate three processes (process 1, process 2, and process 3) to process the three information groups. Specifically, the server can use process 1 to process information group 1, use process 2 to process information group 2, and use process 3 to process information group 3, and the three processes do not interfere with each other and are independent.

[0091] In another embodiment, the server can sequentially target each of the at least one information group, and specifically, the server can determine a target information group from the at least one information group after executing steps S206 (or steps S406), and execute steps S203 to S206 (or steps S403 to S406) until all information groups in the at least one information group have executed steps S203 to S206 (or steps S403 to S406).

[0092] Further, if the server detects that the total number of client identifiers in an information group is less than the preset number when executing step S203 (or step S403) based on the information group, the server stops obtaining the preset number of client identifiers from the determined client identifiers. For example, assuming the preset number is 5, and there are three information groups (information group 1, information group 2, and information group 3); then, when the server executes step S203 (or step S403) based on information group 1, if the server detects that the total number of client identifiers included in information group 1 is less than the preset number 5, the server stops obtaining the preset number of client identifiers from information group 1, i.e., the server will not execute steps S204 to S206 (or steps S404 to S406) based on information group 1.

[0093] Correspondingly, if the server detects that the total number of client identifiers in a certain information group is greater than or equal to the preset number when performing step S203 on the information group, the server will continue to perform steps S204 to S206 (or steps S404 to S406) based on the information group. For example, assuming that the preset number is 5 and there are three information groups (information group 1, information group 2, and information group 3); then, when the server performs step S203 (or step S403) based on information group 1, if the server detects that information group 1 includes a total number of client identifiers greater than or equal to the preset number 5, the server will obtain the preset number of client identifiers from information group 1, and after obtaining the preset number of client identifiers, perform steps S204 to S206 (or steps S404 to S406) based on information group 1.

[0094] For example, when the server determines the target information group by sequentially taking each information group in the at least one information group as the target information group, refer to Figure 5 , Figure 5 Another method for locating a program crash reason provided by an embodiment of the present application is shown in Figure 5 , and the method comprises the following steps:

[0095] S501, collecting program crash information and classifying the collected program crash information.

[0096] In one embodiment, the specific embodiment of step S501 can refer to the description of steps S201 to S202, which will not be repeated here. In another embodiment, the specific embodiment of step S501 can also refer to the description of steps S401 to S402, which will not be repeated here.

[0097] S502, determining whether the classification is successful.

[0098] In one embodiment, if the server successfully classifies the collected program crash information, step S503 is performed; if the server fails to classify the collected program crash information, step S510 is performed. For example, if the server can calculate the class attribute information of the program crash information according to the information content included in the collected program crash information, it is considered that the server has successfully classified.

[0099] S503, obtaining at least one information group.

[0100] S504, determining a target information group from the at least one information group.

[0101] S505, determining whether the target information group is successfully determined.

[0102] In one embodiment, the method for determining the target information group by the server can be: adding all the obtained information groups into a first-in-first-out queue, and taking the first information group in the queue as the target information group according to the first-in-first-out principle. Specifically, if the server fails to obtain the preset number of client identifiers when performing step S507, or after the server performs step S509, the server will remove the target information group from the queue, obtain a new queue, and take the first information group in the new queue as a new target information group. For example, assuming that the initial queue is {information group 3, information group 2, information group 1}, if the target information group (assuming to be the first information group in the initial queue) determined by the server for the first time corresponds to a total number of client identifiers less than the preset number, then when performing step S507, the server will remove the target information group from the queue, obtain a new queue, and take the first information group (at this time, it is “information group 2”) in the new queue as the target information group to perform steps S505 to S509. It can be understood that if the queue is empty (i.e., there is no information group in the queue), it is determined that the server fails to determine the target information group, and then the server will perform step S510.

[0103] In another embodiment, the number of at least one information group can be T (T is a positive integer), the server can take the tth information group in the T information groups as the target information group when determining the target information group for the xth time (0

[0104] S506, randomly selecting a preset number of client identifiers based on the target information group.

[0105] In one embodiment, the specific embodiment of step S506 can be referred to the description of step S203, which will not be repeated here. In another embodiment, the specific embodiment of step S506 can be referred to the description of step S403, which will not be repeated here.

[0106] S507, determining whether the preset number of client identifiers are successfully selected.

[0107] In one embodiment, if the server successfully obtains the preset number of client identifiers, the server performs step S508; if the total number of client identifiers corresponding to the target information group is less than the preset number, it is considered that the server fails to obtain the preset number of client identifiers, and the server will perform step S504.

[0108] In a specific embodiment, if the target information group is the first information group in the queue, the server can remove the target information group from the queue after failing to obtain the preset number of client identifiers, and then execute step S504 after obtaining a new queue. In other embodiments, if the target information group is the tth information group in the T information groups, the server can execute step S504 after performing an increment operation on t after failing to obtain the preset number of client identifiers. For example, assume that there are two information groups in total, the first information group is information group 1 (including three client identifiers in total), the second information group is information group 2, and the server needs to obtain four (preset number) client identifiers in each information group at random. If the server determines that the target information group is information group 1 (t = 1), and the total number of client identifiers included in information group 1 is three, and since 3 < 4, the server performs an increment operation on t (t = 2 at this time), and determines information group 2 as the target information group when executing step S504.

[0109] S508, obtaining program crash data items collected from the terminal devices to which the preset number of client identifiers belong, and performing correlation calculation on each program crash data item.

[0110] S509, detecting the correlation calculation result of each program crash data item to determine the program crash cause.

[0111] In an embodiment, the correlation calculation performed by the server on each program crash data item can be understood as that the server obtains the cause probability of the object indicated by each program crash item. Optionally, the specific implementation of steps S508 to S509 can refer to steps S204 to S206, or refer to steps S404 to S406, which will not be described herein again.

[0112] S510, ending the program crash cause positioning process.

[0113] The method for locating the program crash reason provided by the embodiment of the present application can obtain multiple information groups by classifying the obtained program crash information, and each information group corresponds to a category attribute information; then a target information group is determined, and at least one program crash data item of a terminal device where a client corresponding to a client identifier of each program crash information in the target information group is obtained, and then a program crash data item with a larger probability is determined by calculating the probability of each program crash data item causing a first program crash, and the reason (i.e., an object pointed to by the program crash data item) causing the program crash is determined. Since the program crash data can be system version information or code defects, the reason for the program crash located by the method provided by the embodiment of the present application can be a system version, a code position, a second program, and the like, and the locating capability of the program crash reason is improved.

[0114] Based on the description of the above-mentioned method for locating the program crash reason, the embodiment of the present application further discloses a method for locating the program crash reason. The method for locating the program crash reason can be a computer program (including program code) running in the above-mentioned server. The method for locating the program crash reason can perform the method shown in Figure 2 、 Figure 4 or Figure 5 . Please refer to Figure 6 , the method for locating the program crash reason can at least include an obtaining unit 601, a classifying unit 602, and a determining unit 603.

[0115] The obtaining unit 601 is configured to obtain program crash information of a first program from each client in multiple clients.

[0116] The classifying unit 602 is configured to classify the obtained multiple program crash information to obtain at least one information group, and each information group includes at least one program crash information.

[0117] The determining unit 603 is configured to determine a client identifier of a client to which each program crash information included in a target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, and the target information group is any information group in the at least one information.

[0118] The obtaining unit 601 is further configured to obtain at least one program crash data item from each terminal device, and each terminal device is a terminal device running a client corresponding to the obtained client identifier.

[0119] The acquisition unit 601 is further configured to acquire a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program.

[0120] The determination unit 603 is further configured to determine an object whose cause probability is greater than a first probability threshold, and determine the object as a program crash cause of the first program.

[0121] In an implementation, the classification unit 602 classifies the acquired plurality of program crash information to obtain at least one information group, and can specifically perform the following steps:

[0122] acquiring category attribute information of each program crash information in the plurality of program crash information, the category attribute information being used to indicate a category of a program crash cause of a first program corresponding to the each program crash information;

[0123] adding program crash information with the same category attribute information in the plurality of program crash information to the same information group to obtain the at least one information group.

[0124] In another implementation, the target information group is each information group in the at least one information group, and the determination unit 603 can be configured to perform the following steps on each information group in the at least one information group:

[0125] determining a client identifier of a client to which each program crash information included in the target information group belongs, and acquiring a preset number of client identifiers from the determined client identifiers, the target information group being any information group in the at least one information;

[0126] acquiring at least one program crash data item from each terminal device, the each terminal device being a terminal device running a client corresponding to the acquired client identifier;

[0127] acquiring a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program;

[0128] determining an object whose cause probability is greater than a first probability threshold, and determining the object as a program crash cause of the first program.

[0129] In another implementation, after the determination unit 603 determines the client identifiers of the clients to which all program crash information included in the target information group belongs, the determination unit 603 can further specifically perform the following steps:

[0130] If the total number of the determined client identifiers is less than the preset number, stopping obtaining the preset number of client identifiers from the determined client identifiers.

[0131] In yet another implementation, each program crash data item includes program process information, the object indicated by each program crash data item is a second program, the program process information refers to process information about the second program generated by each terminal device in a time period of the first program crash, and the acquisition unit 601 acquires the cause probability of the object indicated by each program crash data item in the at least one program crash data item, and specifically can perform the following steps.

[0132] determining a target program crash data item from all acquired program crash data items, the object indicated by the target program crash data item being the same as the object indicated by each program crash data item, and acquiring the number of terminal devices to which the target program crash data item belongs;

[0133] obtaining the cause probability of the second program according to the number of terminal devices and the number of terminal devices to which the preset number of client identifiers belong.

[0134] In yet another implementation, the determination unit 603, before the program crash data item with the cause probability greater than the first probability threshold, can also be configured to perform the following steps.

[0135] obtaining a reference probability according to the number of the plurality of clients and the number of terminal devices;

[0136] determining the first probability threshold according to the reference probability.

[0137] In yet another implementation, the determination unit 603 obtains a reference probability according to the number of the plurality of clients and the number of terminal devices, and specifically performs the following steps.

[0138] obtaining a reference probability according to the number of the plurality of clients and the number of terminal devices to which the program crash data item corresponding to the object with the cause probability greater than the second probability threshold belongs.

[0139] According to one embodiment of the present application, Figure 2 , Figure 4 and Figure 5 The steps involved in the method shown in the above Figure 6 The units in the program crash cause positioning apparatus shown in the above Figure 2 The steps S201, S204 and S205 shown in the above Figure 6The obtaining unit 601 in the program crash cause positioning apparatus shown in the embodiment can be implemented by the program crash cause positioning apparatus shown in the embodiment; the step S202 can be implemented by Figure 6 The classification unit 602 in the program crash cause positioning apparatus shown in the embodiment can be implemented by the program crash cause positioning apparatus shown in the embodiment; the step S203 and the step S206 can be implemented by Figure 6 The determining unit 603 in the program crash cause positioning apparatus shown in the embodiment can be implemented. For example, Figure 4 The steps S401, S404 and S405 shown in the embodiment can be implemented by Figure 6 The obtaining unit 601 in the program crash cause positioning apparatus shown in the embodiment can be implemented; the step S402 can be implemented by Figure 6 The classification unit 602 in the program crash cause positioning apparatus shown in the embodiment can be implemented; the step S403 and the step S406 can be implemented by Figure 6 The determining unit 603 in the program crash cause positioning apparatus shown in the embodiment can be implemented. For example, Figure 5 The steps S501, S506 and S508 shown in the embodiment can be implemented by Figure 6 The obtaining unit 601 in the program crash cause positioning apparatus shown in the embodiment can be implemented; the step S502 and the step S503 can be implemented by Figure 6 The classification unit 602 in the program crash cause positioning apparatus shown in the embodiment can be implemented; the step S504, the step 505, the step S507 and the steps 509 to 510 can be implemented by Figure 6 The determining unit 603 in the program crash cause positioning apparatus shown in the embodiment can be implemented.

[0140] According to another embodiment of the present application, Figure 6 The units in the program crash cause positioning apparatus shown in the embodiment are divided based on logical functions, and the units can be combined into one or several other units respectively or all, or some of the units can be further split into multiple units with smaller functions to constitute, which can achieve the same operation without affecting the implementation of the technical effects of the embodiments of the present application. In other embodiments of the present application, the program crash cause positioning apparatus can also include other units, and these functions can also be assisted by other units in actual application, and can be achieved by multiple units.

[0141] According to another embodiment of the present application, the computer program (including program code) related to each step of the method shown in Figure 2 , Figure 4 or Figure 5 can be constructed by running the computer program on a general computing device such as a computer including a central processing unit (CPU), a random access storage medium (RAM), a read-only storage medium (ROM) and the like processing elements and storage elements, which can execute the steps of the method shown in Figure 6The computer program can be recorded on a computer storage medium, loaded into the above-mentioned computing device through the computer storage medium, and run in the computing device.

[0142] In the embodiment of the application, the program crash cause positioning apparatus obtains program crash information generated when a first program crash occurs, obtains a program crash data item on a terminal device to which a client identifier corresponding to the program crash information belongs based on the client identifier, and calculates a probability that an object indicated by the program crash data item causes the first program crash based on a number of terminal devices to which the program crash data item belongs. Since the program crash data item can be program process information, system version information, a code defect position, and the like, the embodiment of the application expands the positioning range of the program crash cause and improves the positioning capability of the program crash cause.

[0143] Based on the description of the method embodiment and the apparatus embodiment, the embodiment of the application further provides a program crash cause positioning device. Please refer to Figure 7 The program crash cause positioning device at least includes a processor 701, an input interface 702, and a computer storage medium 703, and the processor 701, the input interface 702, and the computer storage medium 703 in the program crash cause positioning device are connected through a bus or other manners.

[0144] The computer storage medium 703 is a memory device in the computer device, and is used to store programs and data. It can be understood that the computer storage medium 703 herein can include an internal storage medium in the program crash cause positioning device, and of course can include an extended storage medium supported by the program crash cause positioning device. The computer storage medium 703 provides a storage space, and the storage space stores an operating system of the program crash cause positioning device. In addition, one or more instructions suitable for being loaded and executed by the processor 701 are also stored in the storage space, and the instructions can be one or more computer programs (including program codes). It should be noted that the computer storage medium herein can be a high-speed RAM memory, or a non-volatile memory such as at least one disk memory; and optionally can be at least one computer storage medium located away from the processor. The processor 701 (or CPU (Central Processing Unit, central processor)) is the computing core and control core of the program crash cause positioning device, and is suitable for implementing one or more instructions, and is specifically suitable for loading and executing one or more instructions to implement a corresponding method flow or a corresponding function.

[0145] In one embodiment, one or more instructions stored in the computer storage medium 703 can be loaded and executed by the processor 701 to implement the corresponding method steps in the method embodiments described above with reference to Figure 2 、 Figure 4 and Figure 5 . In a specific implementation, one or more instructions in the computer storage medium 703 are loaded and executed by the processor 701 to perform the following steps:

[0146] obtain program crash information of a first program from each of a plurality of clients; perform classification processing on the obtained plurality of program crash information to obtain at least one information group, each information group including at least one program crash information; determine a client identifier of a client to which each program crash information included in a target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information; obtain at least one program crash data item from each terminal device, the each terminal device being a terminal device running a client corresponding to the obtained client identifier; obtain a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program; and determine an object whose cause probability is greater than a first probability threshold, and take the determined object as a program crash cause of the first program.

[0147] In one embodiment, the computer storage medium 703 performs the classification processing on the obtained plurality of program crash information to obtain at least one information group, specifically by loading and executing the following steps by the processor 701:

[0148] obtain category attribute information of each program crash information in the plurality of program crash information, the category attribute information being used to indicate a category of a program crash cause of a first program corresponding to the each program crash information;

[0149] add program crash information with the same category attribute information in the plurality of program crash information to the same information group to obtain the at least one information group.

[0150] In another embodiment, the target information group is each of the at least one information group, and the processor 701 is further configured to perform the following steps on each of the at least one information group:

[0151] determine a client identifier of a client to which each program crash information included in the target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information;

[0152] acquire at least one program crash data item from each terminal device, each terminal device being a terminal device running a corresponding client of the acquired client identifier;

[0153] acquire a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by the each program crash data item is a program crash cause of the first program;

[0154] determine an object whose cause probability is greater than a first probability threshold, and take the determined object as a program crash cause of the first program.

[0155] In yet another implementation, after the computer storage medium 703 acquires the client identifier of the client to which all program crash information contained in the determined target information group belongs, the processor 701 is further configured to load and execute:

[0156] If the total number of the determined client identifiers is less than the preset number, stop acquiring the preset number of client identifiers from the determined client identifiers.

[0157] In yet another implementation, each program crash data item includes program process information, the object indicated by the each program crash data item is a second program, and the second program refers to a program in a running state in the each terminal device at the time of the first program crash, and the program process information refers to process information about the second program generated by the each terminal device in a time period of the first program crash. The computer storage medium 703 acquires the cause probability of the object indicated by each program crash data item in the at least one program crash data item, specifically by the processor 701 loading and executing:

[0158] determine a target program crash data item from all acquired program crash data items, the target program crash data item indicating the same object as the object indicated by the each program crash data item, and acquire a number of terminal devices to which the target program crash data item belongs;

[0159] obtain a cause probability of the second program according to the number of terminal devices and the number of terminal devices to which the preset number of client identifiers belong.

[0160] In yet another implementation, before the computer storage medium 703 determines the program crash data item whose cause probability is greater than the first probability threshold, the processor 701 is further configured to load and execute:

[0161] obtain a reference probability according to the number of the plurality of clients and the number of terminal devices;

[0162] According to the reference probability, the first probability threshold is determined.

[0163] In yet another embodiment, the reference probability is obtained according to the number of the plurality of clients and the number of the terminal devices in the computer storage medium 703, and is specifically loaded and executed by the processor 701:

[0164] The reference probability is obtained according to the number of the plurality of clients and the number of terminal devices to which the program crash data items corresponding to the object whose cause probability is greater than the second probability threshold belong.

[0165] In the embodiment of the application, the processor obtains program crash information generated when a first program crash occurs, and obtains a program crash data item on a terminal device to which a client identifier corresponding to the program crash information belongs based on the client identifier. Then, the processor calculates a probability of the object indicated by the program crash data item causing the first program crash based on the number of terminal devices to which the program crash data item belongs. Since the program crash data item can be program process information, system version information, code defect position, etc., the method provided in the embodiment of the application expands the positioning range of the program crash cause, and thus improves the positioning capability of the program crash cause.

[0166] The embodiment of the application further provides a storage medium in which a computer program of the positioning method of the program crash cause is stored. The computer program includes program instructions. When one or more processors load and execute the program instructions, the description of the positioning method of the program crash cause in the embodiment can be implemented, and thus the description is not repeated here. The beneficial effects of the same method are not repeated here. It can be understood that the program instructions can be deployed on one or more devices capable of communicating with each other to execute.

[0167] It should be noted that according to one aspect of the application, a computer program product or computer program is also provided. The computer program product or computer program includes computer instructions stored in a computer readable storage medium. The processor in the program crash cause positioning device reads the computer instructions from the computer readable storage medium, and then executes the computer instructions, so that the program crash cause positioning device can execute the method provided in various optional modes of the program crash cause positioning method embodiment aspects shown in Figure 2 、 Figure 4 and Figure 5 .

[0168] Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a computer readable storage medium. When the computer program is executed, it can include the processes of the above-mentioned embodiment of the program crash reason positioning method. The computer readable storage medium can be a magnetic disk, an optical disk, a read-only memory (ROM), a random access memory (RAM), or the like.

[0169] The above only discloses part of the embodiments of the present application, and of course cannot limit the scope of the rights of the present application. Those skilled in the art can understand that all or part of the processes of the above-mentioned embodiments can be implemented, and equivalent changes made according to the claims of the present application still fall within the scope of the present application.

Claims

1. A method of locating a cause of program crash, characterized by, The application comprises the following steps: obtaining program crash information of a first program from each of a plurality of clients; classifying the obtained program crash information to obtain at least one information group, each information group comprising at least one program crash information; determining the client identifiers of the clients to which each program crash information included in a target information group belongs, and obtaining a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information group; obtaining at least one program crash data item from each terminal device, each terminal device being a terminal device running a client corresponding to the obtained client identifier; obtaining the cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being the probability that the object indicated by the each program crash data item is the program crash cause of the first program; determining the object whose cause probability is greater than a first probability threshold, and taking the determined object as the program crash cause of the first program.

2. The method of claim 1, wherein, The classification of the obtained program crash information to obtain at least one information group comprises the following steps: obtaining the category attribute information of each program crash information in the plurality of program crash information, the category attribute information being used to indicate the category of the program crash cause of the first program corresponding to the each program crash information; adding the program crash information with the same category attribute information in the plurality of program crash information to the same information group to obtain the at least one information group.

3. The method of claim 1, wherein, The target information group is each of the at least one information group, and the following steps are performed on each of the at least one information group: determining the client identifiers of the clients to which each program crash information included in the target information group belongs, and obtaining a preset number of client identifiers from the determined client identifiers, the target information group being any one of the at least one information group; obtaining at least one program crash data item from each terminal device, each terminal device being a terminal device running a client corresponding to the obtained client identifier; obtaining the cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being the probability that the object indicated by the each program crash data item is the program crash cause of the first program; determining the object whose cause probability is greater than a first probability threshold, and taking the determined object as the program crash cause of the first program.

4. The method of claim 3, wherein, After the determination of the client identifiers of the clients to which all program crash information included in the target information group belongs, the following step is further included: if the total number of the determined client identifiers is less than the preset number, stopping the obtaining of the preset number of client identifiers from the determined client identifiers.

5. The method of claim 1, wherein, The program crash data item includes program process information, and the object indicated by each program crash data item is a second program, which refers to a program in each terminal device that is in a running state at the time of the first program crash, and the program process information refers to process information about the second program generated by each terminal device in a time period of the first program crash; The obtaining of the cause probability of the object indicated by each program crash data item in the at least one program crash data item includes: determining a target program crash data item from all obtained program crash data items, the target program crash data item indicating the same object as the object indicated by each program crash data item, and obtaining the number of terminal devices to which the target program crash data item belongs; obtaining the cause probability of the second program according to the number of terminal devices and the number of terminal devices to which the preset number of client identifiers belong.

6. The method of claim 5, wherein, Before the program crash data item whose cause probability is greater than the first probability threshold is determined, the method further includes: obtaining a reference probability according to the number of terminal devices and the number of terminal devices to which the preset number of client identifiers belong. determining the first probability threshold according to the reference probability.

7. The method of claim 6, wherein, The obtaining of the reference probability according to the number of terminal devices and the number of terminal devices to which the preset number of client identifiers belong includes: obtaining the reference probability according to the number of terminal devices and the number of terminal devices to which the object corresponding to the program crash data item whose cause probability is greater than the second probability threshold belongs.

8. An apparatus for locating a cause of program crash, characterized by, includes: an obtaining unit, configured to obtain program crash information of a first program from each client in a plurality of clients; a classifying unit, configured to perform classification processing on the obtained plurality of program crash information to obtain at least one information group, each information group including at least one program crash information; a determining unit, configured to determine client identifiers of clients to which each program crash information included in a target information group belongs, and obtain a preset number of client identifiers from the determined client identifiers, the target information group being any information group in the at least one information group; the obtaining unit is further configured to obtain at least one program crash data item from each terminal device, the terminal device being a terminal device running a client corresponding to the obtained client identifier; the obtaining unit is further configured to obtain a cause probability of an object indicated by each program crash data item in the at least one program crash data item, the cause probability being a probability that the object indicated by each program crash data item is a program crash cause of the first program; the determining unit is further configured to determine an object whose cause probability is greater than a first probability threshold, and take the determined object as a program crash cause of the first program.

9. A program crash cause positioning device, comprising: a processor adapted to implement one or more computer programs; a computer storage medium storing one or more computer programs, the one or more computer programs being adapted to be loaded and executed by the processor to implement the program crash cause positioning method according to any one of claims 1-7.

10. A storage medium, characterized by The storage medium stores one or more instructions adapted to be loaded and executed by the processor to implement the method for locating a program crash cause according to any one of claims 1-7.

11. A computer program product, characterised in that, The computer program product comprises a computer program which is executed by the processor to implement the method for locating a program crash cause according to any one of claims 1-7.

Citation Information

Patent Citations

  • Client crash processing method, device and system, equipment and storage medium

    CN111416857A

  • Crash processing method and device, electronic equipment and storage medium

    CN112437152A