WO2012111167A1 - Trace information acquisition method, computer system, and program - Google Patents
Trace information acquisition method, computer system, and program Download PDFInfo
- Publication number
- WO2012111167A1 WO2012111167A1 PCT/JP2011/053799 JP2011053799W WO2012111167A1 WO 2012111167 A1 WO2012111167 A1 WO 2012111167A1 JP 2011053799 W JP2011053799 W JP 2011053799W WO 2012111167 A1 WO2012111167 A1 WO 2012111167A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- importance
- trace information
- program
- information
- execution
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3096—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Definitions
- the present invention relates to a trace information acquisition method, a computer system, and a program, and more particularly to acquisition of trace information in program execution.
- tracer trace program
- the tracer outputs a trace information file including method call information in the execution program.
- the system administrator can grasp the failure occurrence process in the execution of the program by analyzing the output trace information.
- Patent Document 1 The technology of the tracer is disclosed in, for example, Japanese Patent Laid-Open No. 2000-259449 (Patent Document 1).
- Patent Document 1 calculates the acquisition level of trace information from the sum of the usage rates of computer resources such as the CPU usage rate and the network usage rate. Further, by comparing the trace level constant set for the trace execution point with the calculated acquisition level, it is determined whether or not to output the trace information at the trace execution point to the trace file.
- Patent Document 2 selects a main method according to the processing time of a method, and executes a program for acquiring an execution path and the processing time of each method when the main method is executed.
- a trace acquisition control technique is disclosed.
- the tracer acquires trace information that helps understand the structure and operation of the program to be traced, presents the trace information, presents the location of the failure and the failure occurrence process, and the system administrator indicates the location of the failure. In addition, it is required to be able to always obtain the failure occurrence process.
- the tracer is mainly intended to analyze unexpected failures in the actual operating environment.
- the tracer is required to always execute in an actual operation environment and continuously acquire trace information including argument information.
- the technique disclosed in Patent Document 1 changes the trace execution point by changing the acquisition level according to the resource usage status. Thereby, the trace information acquired according to a resource utilization condition can be reduced.
- the technique disclosed in Patent Document 2 selects a main method according to a processing time, and selects the main method as a target for performing detailed measurement. Thereby, the trace information to be acquired can be reduced.
- the business system does not execute each procedure independently in executing the program, but executes each procedure in an execution path determined by the calling relationship between procedures. That is, the possibility of occurrence of a failure in program execution varies depending on the execution path, and even in the same procedure, a failure can occur with different probabilities in different execution paths. Therefore, it is important for the trace information acquired in each procedure to consider not only the nature of the procedure but also the nature of the execution path on which the procedure is executed.
- the above conventional technology makes a determination on the trace information to be acquired individually for each trace execution point or method. Therefore, although trace information can be reduced, there is a possibility that important information in failure analysis cannot be obtained. Therefore, a technique capable of more appropriately acquiring trace information important for failure analysis in program execution is desired.
- One aspect of the present invention is a method in which a computer system including a computer that executes a program acquires trace information in the execution of the program.
- the type of trace information set for the procedure is acquired in each of a plurality of procedures included in the execution path in the execution of the program.
- the acquired trace information is stored in a storage area.
- the importance of each of the plurality of procedures is determined using trace information stored in the storage area.
- a new importance level that determines the type of trace information acquired in the other procedures included in the plurality of procedures is determined.
- the type of trace information acquired in the other procedure is updated according to a new importance level that determines the type of the determined trace information.
- the updated type of trace information is acquired.
- FIG. 2 is a diagram schematically illustrating a configuration of a computer having a trace function in the first embodiment.
- 6 is a flowchart illustrating an overall processing flow of the tracer in the first embodiment.
- 5 is a flowchart illustrating a flow of importance calculation processing in the first embodiment.
- a 1st embodiment it is a block diagram showing an example of composition of profile information. It is a figure which shows the example of the correspondence table of trace information acquisition level and importance reference value in 1st Embodiment. It is a figure which shows an example of the call tree constructed
- assembled by the call relationship construction process in 1st Embodiment. 5 is a flowchart illustrating an execution path analysis process in the first embodiment.
- FIG. 5 is a flowchart illustrating importance path reference value calculation processing for an execution path in the first embodiment.
- 5 is a flowchart illustrating a trace information acquisition level determination process in the first embodiment.
- 5 is a flowchart illustrating a program extension process in the first embodiment.
- 5 is a flowchart showing probe insertion processing in the first embodiment.
- 5 is a flowchart illustrating a trace information output process in the first embodiment.
- FIG. 6 is a diagram illustrating a display example of trace information in the first embodiment.
- FIG. In the first embodiment it is a diagram showing an example of trace execution path designation information.
- a 1st embodiment it is a figure showing an example of tracing object specification information.
- FIG. 3 is a diagram illustrating an example of a program to be traced in the first embodiment. It is a figure which shows the example of the argument and internal variable information of the method in profile information used in determination of the importance of the execution path of a program example in 1st Embodiment. It is a figure which shows the example of the call path information of the method in profile information used in determination of the importance of the execution path of a program example in 1st Embodiment.
- FIG. 20 is a diagram illustrating an example of a call tree generated from the method call relation information of FIG. 19F in the first embodiment.
- an example of a correspondence table of trace information acquisition levels / importance level reference values corresponding to the profile information of FIGS. 19A to 19I is shown.
- an example of a result of inserting a probe into a class of an execution program is shown.
- an example of a result of inserting a probe into a class of an execution program is shown.
- an example of a result of inserting a probe into a class of an execution program is shown.
- 5 is a flowchart illustrating a program execution process in the first embodiment.
- the example of the trace information acquired from the example program is shown.
- the example of the trace information acquired from the example program is shown.
- an example of output trace information of a program example is shown.
- an example of output trace information of a program example is shown.
- an example of output trace information of a program example is shown.
- the example of the trace information acquired in execution of the example program is shown.
- the example of the trace information acquired in execution of the example program is shown.
- 2nd Embodiment it is a flowchart which shows the flow of the whole process of a tracer. 9 is a flowchart illustrating a program monitoring process in the second embodiment. It is an example of the display image of profile information in 2nd Embodiment. It is an example of the display image of profile information in 2nd Embodiment. It is an example of the display image of profile information in 2nd Embodiment. In 2nd Embodiment, it is an example of the display image of trace information. In 2nd Embodiment, it is an example of the display image of trace information. In 2nd Embodiment, it is an example of the display image of trace information. In 2nd Embodiment, it is an example of the display image of trace information.
- This embodiment describes a preferred method for efficiently collecting trace information effective for solving a problem in program execution.
- a Java registered trademark
- the present invention is suitable for an object-oriented language, particularly a system for executing a program by Java, but is also applied to an object-oriented language different from Java or a system for executing a program written in a language different from an object-oriented language. be able to.
- a probe for acquiring trace information is inserted into a Java program to be executed.
- information useful for solving a problem in program execution is acquired with low overhead by determining the acquisition information type of a procedure in each execution path.
- the system of this embodiment identifies an execution path and determines the type of trace information to be acquired in a method in the execution path according to the importance of the execution path.
- a method is a procedure and a program to be executed.
- the execution path of the Java program includes one or more methods.
- the importance is an index representing the likelihood of failure.
- the system according to the present embodiment increases the importance of an execution path or a method in which a failure is likely to occur, and acquires detailed trace information there. Similarly, the importance of an execution path or method in which a failure is unlikely to occur is reduced, and the trace information acquired there is simplified. As a result, trace information useful for failure analysis is acquired, and the amount of acquired trace information is reduced.
- FIG. 1 is a block diagram schematically showing the configuration of an apparatus that executes the trace information acquisition method of this embodiment.
- the computer 101 includes a CPU 102 that is a processor and a memory 103 that is a storage device.
- the processor may include a plurality of one or more processor cores and may include a plurality of processor packages.
- the CPU 102 executes a Java virtual machine (Java VM) 114.
- Java VM Java virtual machine
- the Java virtual machine 114 includes a program expansion processing unit 104, an importance calculation processing unit 105, a trace information output processing unit 107, a screen display processing unit 115, a program reading processing unit 116, a profile information update processing unit 118, and a program execution processing unit 120. including. These are programs, and the CPU 102 can function as each processing unit by operating according to each program.
- FIG. 1 shows each processing unit in the CPU 102 for convenience of explanation, but in an actual operation, each program is typically loaded into the memory 103 from the external storage device 131 or another nonvolatile storage device. Then, the CPU 102 acquires commands and data of each program from the memory 103 and operates according to the commands. The processing result of the CPU 102 is reflected in the data stored in the memory 103.
- a user can input information to the computer 101 using an input device 192 (for example, a mouse or a keyboard).
- the display device 191 for example, a liquid crystal display device) displays a user-set image, an acquired trace information image, and other images.
- the memory 103 includes a program 109, an extended program 110, acquisition trace information 124, call tree information 125, profile information 111 of the program 109, output trace information 112, trace information acquisition level / importance level reference value correspondence table 121, Trace target designation information 123 and trace execution path designation information 122 are stored. Each information is stored in a storage area corresponding to each memory 103.
- the program 109 is a trace target
- the extended program 110 is a program in which a probe is inserted.
- the acquired trace information 124 is information acquired by the probe during the execution of the extension program 110, and is internal data of the tracer.
- the call tree information 125 is information indicating a read relationship between methods of the extension program 110. This is internal data of the importance calculation processing unit 105 generated from the acquired trace information 124 by the importance calculation processing unit 105.
- the profile information 111 is profile information of the program 109 and is generated from the acquired trace information 124 and the analysis result of the program 109.
- the output trace information 112 is output trace information converted from the acquired trace information 124.
- the trace information acquisition level / importance level reference value correspondence table 121 associates the trace information acquisition level of the method with the importance level reference value of the execution path.
- the execution path importance level reference value and the trace information acquisition level indicate the importance level of the execution path. The calculation method of the importance standard value will be described later.
- the trace information acquisition level specifies the type of trace information acquired by the corresponding method. Therefore, the trace acquisition level and the importance reference value of the execution path associated therewith represent the importance of the method in acquiring trace information.
- the trace target designation information 123 indicates a trace target designated (limited) by the user.
- the trace execution path designation information 122 indicates the designated trace acquisition level of the execution path designated by the user. Details of the information stored in the memory 103 in FIG. 1 will be described later.
- a storage device that stores data (including programs) necessary for the operation of the system can include a plurality of different types of components (eg, storage devices of different computers).
- the information stored in the memory 103 or the external storage device 131 does not depend on the data structure, and may be expressed in any data structure such as a table or a list. This is the same in the second embodiment.
- the program 109, the profile information 111, the output trace information 112, the trace information acquisition level / importance reference value correspondence table 121, the trace target designation information 123, and the trace execution path designation information 122 are the external storage device 131 or others. And is loaded into the memory 103. Data (information) updated in the memory 103 is reflected in data (information) in the nonvolatile memory.
- At least a part of the program that operates on the computer 101 in FIG. 1 can operate on another computer.
- each processing unit of the Java virtual machine 114 can be executed by a computer different from the computer 101 that executes the extension program 110.
- data (information) different from the expansion program 110 shown in the memory 103 may be stored in a computer different from the expansion program 110.
- FIG. 2 shows the flow of processing in the overall configuration diagram of FIG.
- the program read processing unit 116 reads the program 109 stored on the memory 103 (S101).
- the program reading processing unit 116 performs processing for reading the program 109 to be traced into the Java virtual machine 114 from the memory 103 or the external storage device 131.
- the importance level calculation processing unit 105 refers to the profile information 111 to identify the execution path in the program 108 and calculate its importance level reference value. From the importance level reference value, a method included in the execution path is calculated. The trace information acquisition level (the type of information acquired by the method of the program 109) is determined (S102).
- the program extension processing unit 104 acquires trace information (data based on the call tree information 125, the profile information 111, and the output trace information 112) according to the trace information acquisition level determined by the importance calculation processing unit 105.
- a probe (program piece) is inserted into the program 109 (S103).
- the probe for acquiring the trace information is composed of one or a plurality of probes.
- the program extension processing unit 104 stores the program 109 in which the probe is inserted in the memory 103 as the extension program 110.
- the program execution processing unit 120 executes the extended program 110 in which a probe for acquiring trace information is inserted (S104).
- the probe stores the trace information acquired in the program execution in the memory 103. This information is shown as acquired trace information 124 in FIG. 1 and is internal data of the probe.
- the profile information update processing unit 118 determines whether the update conditions for the profile information 111 specified by the user in advance are satisfied (S105).
- An example of the update condition is the passage of a specified time.
- the process proceeds to a profile information update step (S106).
- the profile information 111 is not updated (S105: NO)
- the process proceeds to step S108.
- the profile information update processing unit 118 can determine the update condition every time the trace information acquisition probe in the extended program 110 is executed (S105), or perform it when designated in advance by the user. Also good.
- step S106 the profile information update processing unit 118 totals the trace information acquired by the probe and updates the profile information 111 on the memory 103. Further, the profile information update processing unit 118 updates the trace information acquisition level / importance level reference value correspondence table 121 (S107).
- the process returns to the importance reference value calculation step (S102) after updating the profile information 111 and the trace information acquisition level / importance reference value correspondence table 121.
- the profile information 111, the trace information acquisition level / importance level reference value correspondence table 121, the execution path (call tree), and the trace information acquisition level are updated during program execution.
- step S108 the trace information output processing unit 107 determines whether a failure has occurred during execution of the extended program 110 or whether the user has issued an output instruction.
- the trace information output processing unit 107 performs a trace information output process (S109).
- the trace information output processing unit 107 converts the trace information 124 acquired in the program execution processing 106 into output trace information 112 and outputs (stores) it on the memory 103 (S109).
- step S108 the Java program 110 continues to execute. Instead of the trace information output processing unit 107, the Java virtual machine command reception processing unit may determine whether the user has issued a trace data output command.
- step S110 the screen display processing unit 115 determines whether to output the profile information 111 and the output trace information 112 on the screen. If the screen is not output (S110: NO), the process ends. In the case of screen output (S110: YES), in step S111, the screen display processing unit 115 displays the profile information 111 by the information related to the method and the calling relationship, and executes the output trace information 112 up to the location where the failure occurred. Display in the route.
- the profile information 111 and the output trace information 112 are displayed on the display device 191 by an appropriate method according to the design.
- the profile information 111, the output trace information 112, and other display images in the present embodiment and other embodiments can be displayed on the display device 191 or other display devices. Alternatively, these may be printed by a printer.
- the importance calculation processing unit 105 determines the importance of the execution path of the trace target program.
- the final numerical value indicating the importance of the execution path in this process is the trace information acquisition level.
- the importance level calculation processing unit 105 calculates the importance level reference value according to the importance level reference, and from the importance level reference value and the trace information acquisition level / importance level reference value correspondence table 121, the execution path (the end point method) of the execution path. Determine the trace information acquisition level (type of trace information to be acquired).
- the importance calculation processing unit 105 first determines whether or not the profile information 111 exists on the memory 103 (S301). If the profile information 111 does not exist (S301: NO), the importance calculation processing unit 105 proceeds to step S306. In step S306, the trace information acquisition levels of all methods are set to “standard” which is an initial value. The set information is stored in the memory 103. The trace information acquisition level will be described later with reference to FIG.
- the importance calculation processing unit 105 proceeds to the call relationship construction processing (S302).
- the call relationship construction process (S302) the importance calculation processing unit 105 reads the profile information 111 and constructs a method call relationship (call tree) for the trace target program (see the example in FIG. 6).
- the call tree is information indicating which method is called from which method and which method is called.
- the memory 103 stores this call tree information 125.
- FIG. 4 shows a configuration example of the profile information 111.
- Profile information 111 includes method argument / internal variable information 1301, method call path information 1302, method execution count 1303, method execution time information 1304, method row count information 1305, method branch instruction count information 1306, method Call relation information 1307, method total instruction count information 1308, and method trace information acquisition level 1309 (information calculated in step S105).
- the profile information 111 is created and updated in the profile information update process (S106) based on the analysis result of the trace target program and the acquired trace information 124 which is data inside the tracer.
- the importance calculation processing unit 105 performs an execution path analysis process (S303). In this process, the importance calculation processing unit 105 adds the characteristic information and importance information of each method to the call tree created in the call relationship construction process (S302), and further extracts the execution path in the call tree.
- the importance calculation processing unit 105 calculates the importance reference value of each execution route extracted in the execution route analysis processing (S303) in the importance reference value calculation processing (S304) of the execution route.
- the importance reference value of the execution path is a value representing the importance of the execution path. The calculation method of the importance standard value will be described later.
- the importance calculation processing unit 105 acquires the trace information on the memory 103 from the importance reference value of the execution path calculated in the importance reference value calculation process (S304) in the trace information acquisition level determination process (S305). With reference to the level / importance reference value correspondence table 121, the trace information acquisition level of the method included in the execution path (in the preferred example described below, the end method of the execution path) is determined.
- FIG. 5 shows an example of the trace information acquisition level / importance level reference value correspondence table 121.
- This table 121 associates importance level reference values with trace information acquisition levels.
- the trace information acquisition level is assigned to each method of the trace target program 109.
- the trace information acquisition level specifies the type of information acquired by the method.
- the trace information acquisition level represents the importance of the execution path and the importance of the method in the execution path.
- This example has three levels of “detail”, “standard”, and “simple” as illustrated in FIG.
- the initial value of the trace information acquisition level is “standard”.
- the probe acquires the method call relationship, the method argument / return value, and the value of the internal variable.
- the probe acquires method call relationships and method arguments / return values, and omits acquiring internal variable values.
- the probe acquires only the method call relationship.
- Generate method argument / internal variable information 1301, method call path information 1302, method execution count 1303, method execution time information 1304, and method call relation information 1307 in profile information 111 from “detail” level information can do.
- part or all of the method argument / internal variable information 1301 is omitted.
- the example shown in FIG. 5 uses statistical information (average, variance, etc.) of the importance standard value of the execution path as a criterion for classifying the trace information acquisition level.
- statistical information average, variance, etc.
- an appropriate method is set by design.
- the trace information acquisition level may be determined by comparing the importance reference value of the execution path with a specified value without using statistical information.
- the call relationship construction process (S302) constructs a method call relationship in the trace target program 109 (generation of call tree information 125).
- FIG. 6 shows an example of a call tree.
- methods 4503, 4504, and 4506 to 4508 are indicated by reference numerals among methods (nodes) surrounded by a rectangle.
- An arrow between methods is an edge, and one edge 4505 is indicated by a reference symbol.
- the call tree of this example includes the number of calls at each edge, method characteristic information, and method importance information, in addition to the call relationship between methods.
- information on each method includes characteristic information and importance information such as an execution time, complexity (for example, the number of branch instructions), and the number of executions, in addition to an identifier for specifying the method.
- the importance level information is information related to the importance level of the execution path (method).
- the number given to the edge indicates the number of calls from the caller method to the callee method.
- the number of executions of one method is the total number of calls from all the read source methods.
- the importance calculation processing unit 105 associates the method with the node and the call relation with the edge from the method call relation information (call relation information 1307 in FIG. 4) in the profile information 111. Build a call tree. This call tree does not include the number of calls, method characteristic information, and importance information. Such information is added in the subsequent execution path analysis process (S303). These may be added by the call relationship construction process (S302).
- the importance level calculation processing unit 105 extracts an execution path from the call tree constructed in the call relation construction process (S 302) and stores it in the memory 103.
- step S501 the importance calculation processing unit 105 performs method (node) characteristic information and importance on the call tree constructed in the call relationship construction processing (S302). Information and edge call count information (call tree characteristic information) are added.
- the call tree (call tree information 125) to which new information (call tree characteristic information) is added has the configuration shown in FIG.
- FIG. 8 shows an example of information given to the method (node) of the call tree, and illustrates the node 4503 (method A).
- each node has, as method characteristic information, the execution time of the corresponding method, the number of branch instructions as complexity, and the number of executions.
- the importance calculation processing unit 105 can acquire these pieces of information from the profile information 111. Specifically, the method characteristic information is acquired from the method execution time information 1304, the method branch instruction number information 1306, and the method execution number information 1303.
- the importance level information includes information on the importance level of the execution path (the importance level of the method associated with the trace information acquisition level).
- an importance criterion which is a criterion for determining the importance of an execution route, an importance criterion value of an execution route calculated from the execution criterion, and trace information in the method specified from the importance criterion value Includes acquisition level.
- the trace information acquisition level of the method is determined from this importance level reference value, and is also a value representing the importance level of the method.
- the importance standard value represents the importance of the execution path and the importance of the method that determines the trace information acquisition level. Details of the importance determination method will be described later.
- the value of the importance standard value and the value of the trace information acquisition level are the previous value, the initial value, or not set. These new values (updated values) are determined in the importance calculation process (S304 in FIG. 3).
- the call relationship diagram (execution path), the execution path importance level reference value, and the method trace information acquisition level are updated during the execution of the program. (Changed dynamically) Accordingly, it is possible to set an appropriate type of trace information for each method in accordance with a change in a call tree (including characteristic information) during program execution.
- the updated level is the same as or different from the level before the update.
- the importance level is the number of executions. A smaller number of executions indicates a higher importance, and the importance decreases with an increase in the number of executions (increase in the importance level reference value).
- the importance criterion is composed of one or a plurality of elements selected from the characteristic information of the method.
- the characteristic element used as the importance criterion and the calculation method of the importance criterion value are preset in the importance calculation processing unit 105. In a preferred example, the user can change the importance information.
- the importance calculation processing unit 105 calculates the importance (reference value) by calculating the value of the characteristic element of the specified method by the specified method. Details of the importance level reference value calculation will be described later.
- the importance calculation processing unit 105 selects a method as a starting point of the call relationship, and registers the starting point as an execution path (S502).
- the starting point is the method that is executed first (without being called from another method) in the method calling relationship.
- the starting point may be any method specified by the user.
- a node 4503 of methodA and a node 4507 of methodH correspond to the origin method.
- one execution path is configured by only the starting method.
- the importance calculation processing unit 105 selects the end point of the execution path from the methods adjacent to the start point (S503).
- the node 4504 of methodB adjacent to the node 4503 of methodA is the end point in the execution path of the node 4503-node 4504.
- a node 4508 of methodD adjacent to the node 4503 of methodA is an end point in the execution path of the node 4503 to the node 4508.
- step S504 the importance calculation processing unit 105 determines whether there is an unsearched method in the method calling relationship created in the calling relationship construction processing (S302). When there is an unsearched method (S504: YES), the importance calculation processing unit 105 proceeds to step S505. If there is no unsearched method (S504: NO), the process proceeds to step S507.
- step S 505 the importance calculation processing unit 105 stores the execution path from the start point to the end point in the memory 103.
- the node 4503-node 4504 is one execution path
- the node 4503-node 4508 is also another execution path.
- step S506 the importance calculation processing unit 105 defines an unexamined method adjacent to the current end point as a new end point. For example, in the example of FIG. 6, a node 4506 of methodC adjacent to the node 4504 of methodB is defined as a new end point. After step S506 ends, the importance calculation processing unit 105 returns to step S504.
- step S504 If it is determined in step S504 that there is no unsearched method (S504: NO), the importance calculation processing unit 105 selects in step S507 the starting point selected in step S502 and steps S506 and S508 (S508 will be described later). Determine if the end points are different.
- step S508 the importance calculation processing unit 105 proceeds to step S508.
- the importance degree calculation processing unit 105 ends the execution route analysis process.
- step S508 the importance calculation processing unit 105 returns the end point to the calling method. After step S508 ends, the importance calculation processing unit 105 returns to step S504.
- the end point method is a method at the end of the call tree (a method that does not call other methods, for example, the node 4506 of methodC in the example of FIG. 6), as well as the start method. All methods (including, for example, the node 4504 of methodB) included in the path that continues from to the end method by the call relationship (edge) are end point methods.
- the registered execution paths are all paths from an origin method to an arbitrary method having a call relationship (edge).
- the nodes 4504 and 4506 are end nodes. Accordingly, one execution path is from the origin node 4503 to the node 4504, and the other one execution path is from the origin node 4503 to the node 4506. Furthermore, in this embodiment, one execution path is configured by only the starting node.
- a single process can be terminated in any method on the call tree. For example, a certain process is terminated by executing methodA and methodB, and another certain process is terminated by executing methodA, methodB, and methodC.
- a certain process is terminated by executing methodA and methodB
- another certain process is terminated by executing methodA, methodB, and methodC.
- the importance level calculation processing unit 105 obtains the execution path importance level reference value analyzed in the execution path analysis process (S303 in FIG. 3).
- the importance calculation processing unit 105 determines whether or not there is an execution path for which the calculation of the importance reference value of the execution path has not been completed (S701). When there is an execution path for which the calculation of the importance level reference value has not been completed (S701: YES), the importance level calculation processing unit 105 proceeds to step S702. When the calculation of the importance reference value of all execution paths is completed (S701: NO), the importance calculation processing unit 105 ends the importance reference value calculation process (S304) of the execution path.
- step S702 the importance calculation processing unit 105 selects an execution path.
- step S703 the sum of importance reference values (values calculated from the characteristic values of the single method) of each method passing from the start method to the end method of the execution path selected in step S702 is obtained. For example, as shown in the example of FIG. 6, when the importance criterion is the number of executions of a method, the number of executions of each method is the importance criterion value of the method itself, and the importance calculation processing unit 105 The total number of execution times of each of the methods constituting the is calculated as the importance reference value of the execution path.
- the importance level calculation processing unit 105 calculates the importance level reference value of the node (method) in the call tree information 125 (call tree shown in FIG. 6) based on the calculated importance level reference value (new importance level reference value) of the execution path. Update. In the present embodiment, the importance level calculation processing unit 105 updates the importance level reference value of the end point method in each execution path to the calculated value of the importance level reference value of the execution path. In this way, the trace information acquisition level (determining importance reference value) of the end point method is determined based on the importance of other methods included in the execution path. The importance calculation processing unit 105 stores the determined trace information acquisition level in the trace information acquisition level 1309 of the profile information 111.
- the importance standard value of the execution path from methodA4503 to methodB4504 is given to methodB4504.
- the importance reference value of the execution path from methodA4503 to methodC4506 is given to methodC4506.
- the importance reference value of the execution path composed of method A4503 as the starting method is the same as the importance reference value of method A4503.
- the importance reference value of the execution path is obtained by the simple sum of the importance reference values of the individual methods included in it, but the importance reference value of the execution path is calculated by the importance reference value of the method alone.
- An average, a weighted sum (a sum obtained by applying a prescribed weight to the importance standard value of each method), or other statistical indicators may be used.
- the weighting factor is set so as to decrease from the end point method of the execution path toward the start point method.
- the elements used for calculating the importance reference value of the execution path are the number of branch instructions included in the method, the number of execution times of the method, the execution time of the method, the execution frequency of the method, and the length of the source code.
- One or more elements selected from the total number of instructions in the binary file can be used.
- the importance increases as the method execution is rarer and the method is more complex. For example, the importance increases with an increase in complexity (for example, the number of branch instructions), execution time, code length, or number of instructions, and the importance decreases with an increase in the number of executions.
- the number of arguments or variables that do not match a preset constraint may be used in the method argument, method internal variable value, or method internal variable type.
- this embodiment may use user related information for determining the importance of the execution path.
- information related to the user who uses the system such as job position information, job information, and department information can be used.
- the importance calculation processing unit 105 may calculate a weighted sum of arbitrary elements in the method characteristic information as the importance of the execution path.
- the weighting coefficient is set so as to decrease from the end point method of the execution path toward the start point method.
- an arbitrary value in the method characteristic information may be a vector, and an output value when the vector is input to a discriminator created by machine learning may be used as the importance of the execution path.
- the trace information acquisition level determination process (S305 in FIG. 3) is a process for obtaining the trace information acquisition level of the method included in the execution path from the importance reference value of the execution path calculated in the execution path importance calculation process (S303). .
- the trace information of the end method of the execution path is determined from the importance reference value of the execution path (the importance reference value of the method in determining the trace acquisition level).
- the probe inserted into the method acquires the type of trace information indicated by the set trace information acquisition level when executing the method.
- step S801 the importance calculation processing unit 105 determines whether there is an execution path whose trace information acquisition level has not been determined. If there is an undetermined execution path (S801: YES), the importance calculation processing unit 105 proceeds to step S802. When the determination of the trace information acquisition level is completed in all execution paths (S801: NO), the importance calculation processing unit 105 ends the trace information acquisition level determination process (S305).
- step S802 the importance calculation processing unit 105 selects an execution path whose trace information acquisition level is not determined.
- step S803 referring to the trace information acquisition level / importance level reference value correspondence table 121, the type of information (trace information acquisition level) acquired at the time of trace execution is determined from the importance level reference value of the execution path.
- the threshold value of the importance level range 2001 may be a value other than a statistic, or may be a value obtained by machine learning or a user-specified value. .
- the threshold value of the importance level range 2001 is updated after the profile information 111 is updated (S106 in FIG. 2) (S107 in FIG. 2).
- the number of levels of the trace information acquisition level 2002 and the type of information 2003 to be acquired in FIG. 5 can be changed by the user.
- step S804 the importance calculation processing unit 105 updates the value of the trace information acquisition level of the end point method in the execution path selected in step S802 to the value of the trace information acquisition level determined in step S803.
- the importance calculation processing unit 105 returns to step S801 after executing step S804. Through the above processing, the type of trace information acquired in the method is updated.
- the importance calculation processing unit 105 prioritizes the level value with which the trace acquisition information is simpler.
- the trace information to be acquired is simplified in the order of “simple”, “standard”, and “detail”.
- the importance calculation processing unit 105 selects an importance reference value to be applied to the end point method from the importance reference values of the plurality of execution paths according to a preset rule.
- the importance calculation processing unit 105 selects a value having the lowest importance reference value. That is, the race information acquisition level that is the simplest (the smallest type of acquired trace information) is selected. This makes it possible to reduce the amount of trace information to be acquired while acquiring necessary trace information.
- program extension processing (S104) Next, the program extension process (S103) shown in the flowchart of FIG. 2 will be described with reference to the flowchart of FIG. In this process, the program extension processing unit 104 embeds a probe for acquiring trace information in the trace target program 109.
- step S901 the program extension processing unit 104 determines whether there is an unexamined trace target class. When there is an uninvestigated class (S901: YES), the program extension processing unit 104 proceeds to step S902. If all classes have been checked (S901: NO), the program extension processing unit 104 proceeds to step S905.
- step S902 the program extension processing unit 104 reads the trace target class from the program 109 on the memory 103.
- step S903 it is determined whether or not there is a method in which a probe for acquiring trace information is not inserted in the class selected in step S902.
- the program extension processing unit 104 proceeds to probe insertion step S904.
- the program extension processing unit 104 returns to step S901.
- step S904 the program extension processing unit 104 inserts a probe based on the trace information acquisition level obtained in the importance calculation process (S102 in FIG. 2) into the method belonging to the class read in step S902. After the probe insertion (S902), the program extension processing unit 104 returns to step S903.
- step S905 the program expansion processing unit 104 outputs the program in which the probe is inserted in step S904 to the memory 103 as the expansion program 110.
- step S906 the program extension processing unit 104 loads the class into which the probe has been inserted in the extension program 110.
- step S906 ends, the program expansion process (S103) ends.
- the probe insertion process (S904 in FIG. 11) will be described with reference to FIG.
- the probe insertion process (S904) inserts a probe based on the trace information acquisition level obtained in the importance calculation process (S102 in FIG. 2).
- the program extension processing unit 104 reads a method for inserting a probe.
- step S1003 the program extension processing unit 104 inserts a method start information acquisition probe at a location corresponding to the first line of the method in the bytecode storage unit of the method read in step S1001.
- step S1004 the program extension processing unit 104 determines whether the trace information acquisition level obtained in the importance level calculation process (S102) is “standard” or “detailed” (hereinafter referred to as a normal state). To do.
- step S1005 When the trace information acquisition level is in the normal state (S1004: YES), the program extension processing unit 104 proceeds to step S1005. If not in the normal state (S1004: NO), the program extension processing unit 104 proceeds to step S1014. In step S1005, the program extension processing unit 104 inserts an argument information acquisition probe into the bytecode storage unit of the method read in step S1001. The probe insertion point is, for example, immediately after the method start information acquisition probe.
- step S1014 the program extension processing unit 104 reads one instruction of the byte code of the method read in step S1001.
- the program extension processing unit 104 determines whether or not to access the internal variable with the byte code read in step S1014.
- the access to the internal variable in step S1006 refers to both processing of reading the internal variable and rewriting the internal variable.
- step S1007 When accessing the internal variable (S1006: YES), the program extension processing unit 104 proceeds to step S1007. If not accessed (S1006: NO), the program extension processing unit 104 proceeds to step S1009.
- step S1007 the program extension processing unit 104 determines whether or not the trace information acquisition level obtained in the importance calculation processing (S102) is a normal level.
- the program extension processing unit 104 proceeds to step S1008. If it is not the normal state (S1007: NO), the program extension processing unit 104 proceeds to step S1009.
- step S1008 the program extension processing unit 104 inserts an internal variable information acquisition probe into the bytecode of the method read in step S1001.
- step S1009 the program extension processing unit 104 determines whether or not the byte code read in step S1014 is a return instruction. In the case of a return instruction (S1009: YES), the process proceeds to step S1010. If the instruction is not a return instruction (S1009: NO), the process returns to step S1014.
- step S1010 the program extension processing unit 104 determines whether or not the trace information acquisition level obtained in the importance calculation processing (S102) is in a normal state.
- the program extension processing unit 104 proceeds to step S1011. If it is not the normal state (S1010: NO), the program extension processing unit 104 proceeds to step S1012.
- step S1011 the program extension processing unit 104 inserts a return value information acquisition probe into the bytecode of the method read in step S1001.
- step S1012 the program extension processing unit 104 inserts a method end information acquisition probe into the bytecode of the method read in step S1001.
- step S1013 the program extension processing unit 104 determines whether it is the end of the method. When it is the end of the method (S1013: YES), the program extension processing unit 104 ends the probe insertion process 204. If it is not the last (S1013: NO), the program extension processing unit 104 returns to step S1014.
- the probe inserted by the above process acquires trace information in the same manner in all of the plurality of execution paths to which the method belongs. Unlike this, the probe may acquire the trace information according to the trace information acquisition level determined for each execution path by specifying the execution path from the call source method and the call destination method. In the same method, the probe acquires detailed trace information in an execution path with high importance, and acquires simplified trace information in an execution path with low importance.
- the profile update processing unit 118 creates profile information 111 (see FIG. 4) for calculating the importance reference value of the execution path from the analysis result of the trace target program and the acquired trace information 124. Further, the profile information 111 is updated with the value of the new acquired trace information 124.
- the trace information acquisition level / importance level reference value correspondence table 121 uses statistical data of the importance level reference value, and the profile update processing unit 118 uses the new acquired trace information 124 value.
- the trace information acquisition level / importance level reference value correspondence table 121 is updated.
- the trace information acquisition level of the method is updated by the importance calculation process (S102 in FIG. 2) using the updated profile information 111.
- the trace information output processing unit 107 converts the trace information 124 acquired by the probe into output trace information 112 and outputs it to the memory 103.
- step S1101 the trace information output processing unit 107 takes in the trace information 124 acquired in the trace information acquisition step (see S1403 in FIG. 23).
- step S1102 the trace information acquired in step S1101 is converted into an output trace information format.
- step S1103 the output trace information 112 converted into the output trace information format in the trace data conversion step (S1102) is stored in the memory 103 or the external storage 113.
- the trace information conversion process 1104 converts the acquired trace information 124 into output trace information 112. First, one record is read from the acquired trace information 124. Next, when the read information is Call information (information indicating that the method has been called), the information is converted into the Call information format of the output trace information 112. Similarly, when the read information is Return information (information indicating that the method has been executed), the information is converted into the Return information format of the output trace information 112. This process is repeated for all trace information.
- FIG. 14 shows a configuration example of the output trace information 112, which is the output result of the trace information.
- the output trace information 112 includes a trace information management table 1801, a trace information log 1802, a method ID table 1803, and an exception ID table 1804. Details will be described later with reference to specific examples.
- FIG. 15 shows a display example of the profile information 111.
- the example of FIG. 15 displays profile information as a call tree. This call tree is the same as the call tree shown in FIG. 6, and detailed description thereof is omitted.
- An example of detailed information of each node is the same as in FIG.
- FIG. 16 shows an example of the display 1603 of the trace information 112. Since the trace information 112 is data to be displayed in the order of method execution, it is displayed as a call trace (execution history).
- the user can specify the trace acquisition level of a specific execution path (its end point method) by using the trace execution path specification information 122. Further, the trace target range (class, method, package (library), etc.) can be specified (limited) by the trace target specifying information 123. 17A and 17B show an example of the trace execution path designation information 122 and an example of the trace target designation information 123, respectively. As a result, it is possible to realize trace information acquisition and error analysis processing adapted to the user's request.
- the trace execution path designation information 122 created and input by the user designates the execution path to be traced and the trace information acquisition level of the execution path.
- three execution paths and respective trace acquisition levels are specified.
- the route of method_a-method_b is designated, and “normal” is designated as the trace information acquisition level.
- the tracer acquires the type of trace information indicated by the trace information acquisition level set by the user in the execution path to be traced set by the user. Specifically, the Java VM 114 (tracer) reads the trace execution path designation file 122 before the program reading process (S101 in FIG. 2). If the trace execution path designation information 122 does not exist, the tracer does not set the trace acquisition information level of the execution path (end point method) specified by the user.
- the importance calculation processing unit 105 determines that the trace execution path designation information 122 is between step S507 and “end of the execution path analysis process” in the execution path analysis (FIG. 4). The execution path designated by the trace execution path designation information 122 is registered. The importance calculation processing unit 105 assigns information indicating that the execution path designated by the trace execution path designation information 122 to the execution path designated by the user is an execution path designated by the user. May be.
- the importance calculation processing unit 105 reads the trace execution path designation file 122 read by the undetermined execution path selected in step S802 between step S802 and step S803 in the trace acquisition level determination process (FIG. 10). Whether or not the execution path is described in the above is determined with reference to the registration information of the execution path.
- the importance calculation processing unit 105 refers to the trace execution path designation information 122, sets the trace information acquisition level of the execution path to a corresponding value, and returns to step S801. If the execution path is not designated by the user, the importance calculation processing unit 105 proceeds to step S803. Through the above processing, the trace information acquisition level of the designated execution path can be set to the designated value.
- the trace target specifying information 123 will be described.
- the user can specify the trace target by the trace target specifying information 123 and limit the acquisition target range of the trace information.
- the Java VM 114 (tracer) reads the trace target designation information 123 before the program reading process (S101 in FIG. 2). If the trace target designation information 123 does not exist, the trace acquisition range is not limited.
- the program extension processing unit 104 determines whether the method read in the processing step S1001 between the step S1001 and the step S1003 in the probe insertion process (FIG. 12) is the package, class, or class described in the read trace target designation information 123. Determine whether it matches the method. If they match, the program extension processing unit 104 proceeds to step S1003. If they do not match, the probe insertion process is terminated. With the above processing, it is possible to limit the acquisition target range of the trace information.
- Example program processing In the following, each of the above processes will be described using the example of the program shown in FIG. 19A to 19I show examples of profile information 111 (see also FIG. 4) used in determining the importance of the execution path of this program example.
- the importance calculation processing unit 105 refers to the profile information 111 of FIGS. 19A to 19I to determine the trace information acquisition level of the method.
- the profile information update processing unit 118 creates and updates the profile information 111 of FIGS. 19A to 19I.
- the program example shown in FIG. 18 includes each program (module) of class SampleClassA1401, class SampleClassB1402, class SampleClassC1403, and class ExceptionHandler 1404.
- method_a (), method_b (), and method_c are normally executed in the order of method_a (), method_b (), and method_c in the program 109 of FIG. However, in the program of FIG. 18, as an exception, method_a (), method_b (), and throwException () may be executed in this order.
- the specific contents of each class are as shown in FIG. 18, and a detailed description thereof is omitted here.
- 19A to 19I show method argument / internal variable information 1301, method call path information 1302, method execution count information 1303, method execution time information 1304, obtained in the execution of the program 109 in FIG.
- Specific examples of method branch instruction number information 1306, method call relation information 1307, method line number information 1305, method total instruction number information 1308, and trace information acquisition level 1309 are shown. The contents of each information are as shown in each figure, and some information will be supplementarily described below.
- the call route information 1302 shown in FIG. 19B includes information on the execution route of the trace target program 109.
- the description indicated by 1502 in FIG. 19B is executed in the order of method_a (), method_b (int), and method_c (int).
- the description of reference numeral 1508 in FIG. 19B indicates that the importance level reference value of the execution path is 115.
- the method execution time information 1304 shown in FIG. 19D indicates the time taken for one execution of each method, but may be the total execution time of each method.
- the execution time of one method is an average value of the times of a plurality of executions of the method.
- the method call relationship information 1307 shown in FIG. 19F indicates each call relationship between methods and the number of calls in each call relationship. For example, there is a call relationship from method_b (int) to method_c (int), and the number of calls is 39 times.
- the importance calculation processing unit 105 constructs a call relationship (call tree) from the method call relationship information 1307 shown in FIG. 19F in the call relationship construction processing (S302 in FIG. 3).
- FIG. 20 shows an example of a call tree generated from the method call relation information 1307 in FIG. 19F.
- the importance calculation processing unit 105 can know which method is likely to be called from which method from the call tree of FIG.
- the importance calculation processing unit 105 extracts the execution path from the constructed call tree and outputs the method call path information 1302.
- the extracted execution paths are the four execution paths of the method call path information 1302 of FIG. 19B.
- the execution path here is a path obtained by fixing the starting point (the starting point method of the execution path) in the configured call tree and sequentially searching for the end point adjacent to the starting point (the end method of the execution path). .
- the importance level calculation processing unit 105 executes the execution path importance level reference value for each execution path extracted in the execution path analysis process (S303). Calculate In this example, the importance calculation processing unit 105 obtains the importance reference value of the execution path from the number of executions of the method included therein. The number of execution times of each method is included in the method execution number information 1303 shown in FIG. 19C.
- the importance calculation processing unit 105 calculates a simple sum of the number of execution times of the methods included in the execution path, and uses the value as the importance reference value of the execution path.
- the calculation result of the importance reference value of each execution path is a numerical value corresponding to each execution path in the method call path information 1302 of FIG. 19B.
- the importance degree calculation processing unit 105 calculates the importance reference value of the execution path and the importance of the trace information acquisition level and the execution path illustrated in FIG.
- the trace information acquisition level of each execution path is obtained from the degree reference value correspondence table 121.
- FIG. 21 shows a correspondence table 121 of trace information acquisition levels and execution path importance reference values corresponding to the profile information 111 of FIGS. 19A to 19I.
- the average value and the standard deviation of the importance reference values of the execution path are 55.3 and 45.2, respectively. Therefore, the range of the importance reference value of the execution path corresponding to the trace information acquisition level is as shown in FIG.
- the importance level calculation processing unit 105 determines the trace information acquisition level of each execution path in the method call path information 1302 shown in FIG. 19B using the correspondence table 121 of FIG.
- the trace information acquisition level of the execution path method_a () is “detailed” because its importance level reference value is 5.
- the trace information acquisition level of the execution path method_a () ⁇ method_b () is “standard” because the importance reference value of the execution path is 50.
- the trace information acquisition level of the execution path method_a () ⁇ method_b () ⁇ method_c () is “simple”, and the trace information acquisition level of method_a () ⁇ method_b () ⁇ throwException () is “standard”.
- the program extension processing unit 104 A probe for acquiring trace information is inserted into each method of 18 example programs.
- 22A to 22D show examples of results of inserting probes into classes 2801 to 2804 of the program 109 (examples of the extended program 110).
- Probes indicated by reference numerals 2805, 2806, 2807, and 2808 in FIG. 22A are probes for acquiring trace information inserted into the class 2801. Since these probes are inserted directly into the Java class file, they cannot be viewed from the outside.
- methodEntry () 2805 is a probe for acquiring method start information.
- getArgent () 2806 is a probe for acquiring a method argument.
- GetLocalValue () 2807 is a probe for acquiring internal variable information.
- getReturnValue () 2808 is a probe for acquiring return value information.
- methodExit () 2809 is a probe for acquiring method end information.
- step S1402 the program execution processing unit 120 determines whether or not the instruction read in step S1401 is a trace information acquisition probe. In the case of the trace information acquisition probe (S1402: YES), the program execution processing unit 120 proceeds to step S1403. If the probe is not a trace information acquisition probe (S1402: NO), the program execution processing unit 120 ends the program execution processing 121. Next, the program execution processing unit 120 acquires trace information in the trace information acquisition process (S1403).
- Trace information acquired by the trace information acquisition process includes method start information (methodEntry ()), method end information (methodExit ()), method argument information (getArgent ()), and method return value information ( getReturnValue ()) or internal variable information (getLocalValue ()).
- the method start information probe is executed at the beginning of the method, and records the method ID (a positive integer value uniquely assigned to each method), the line number of the calling method, and the information acquisition time.
- the probe of the method end information is called immediately before the return process, and records the method ID, the line number of the calling method, and the information acquisition time. From the probe information, the calling relationship between the method and the caller method can be specified.
- the information acquisition time recorded by the probe is used to calculate the method execution time and the method execution frequency.
- the method argument information probe is inserted and executed immediately after the method start information acquisition probe.
- the information to be acquired and recorded includes the method ID, argument name, variable type, argument value, and information acquisition time.
- the probe of the return value information of the method is executed immediately before the method return process.
- the information to be acquired and recorded is the method ID, return value name, variable type, and return value information acquisition time.
- the probe that acquires internal variable information is inserted immediately before accessing the variable.
- the information to be acquired and recorded includes a method ID, an internal variable name, an internal variable type, an internal variable value, a caller method line number, an access to the internal variable, and an information acquisition time. Thereby, the value of the internal variable of the method can be specified.
- a table 2901 in FIG. 24A is a table of trace information.
- a table 2902 in FIG. 24B is a method ID table.
- Numerals 1 to 8 in the first column of the table 2901 in FIG. 24A are numbers given for explanation.
- the method ID of the table 2902 in FIG. 24B is uniquely assigned to each method.
- the first line (2904 in FIG. 24A) in the table 2901 indicates that a method (method_a ()) having a method ID of 1 has been called. Since the line number of the calling method is unknown, “none” is recorded.
- the second line in the table 2901 represents the argument information of the method (method_a ()) whose method ID is 1. Since the method (method_a ()) takes no argument, the name, type, and value of the argument are recorded as “none”.
- the third line (2906 in FIG. 24A) in the table 2901 is information when an internal variable is accessed in a method (method_a ()) having a method ID of 1. Since the line number of the caller is unknown, “none” is recorded. “-11” is stored in the variable “id”, which indicates that the variable is accessed in the third line of (method_a ()).
- the exception on the eighth line (2907 in FIG. 24A) in the table 2901 is trace information acquired in the exception information acquisition process when an exception occurs. This information indicates that an exception has occurred in the method whose method ID is 4. Also, the exception catch information is “none”, indicating that no exception was caught by any method.
- the trace information management table 1801 in FIG. 25A stores the version number of the tracer, the process ID of the Java virtual machine, the trace execution ID (ID issued by the tracer when the trace is executed), the number of threads, and the thread ID. To do.
- the trace information management table 1801 is generated at the start of tracing.
- the method ID table 1803 in FIG. 25B stores a method name and a method ID corresponding to the method name.
- the method ID table 1803 is generated and appended when a class is read.
- the trace information log 1802 in FIG. 25C shows the type of trace information (method start / end, exception), the caller's method ID (the method ID in which an exception occurred in the case of an exception), and the callee's method ID (in the case of an exception). Stores the ID of the method that caught the exception.
- FIGS. 26A and 26B show examples of trace information acquired in the execution of the program of FIG.
- the trace information in FIG. 26A and FIG. 26B shows the result of changing the argument of the program 109 in FIG.
- FIG. 26A is a call trace 1901 generated by the method of this embodiment.
- FIG. 26B shows a trace 1902 generated by a conventional method (a method for acquiring information in detail by all methods).
- the trace information in FIG. 26B displays data indicated by reference numerals 1903, 1904, and 1905. Since data (information) 1903, 1904, and 1905 are data that are not used for specifying an error, they are not necessary for failure analysis.
- the trace information shown in FIG. 26A does not include the unnecessary data, and the technique according to the present embodiment shows that the trace information can be efficiently acquired as compared with the trace information of the conventional technique. .
- the importance of the execution path is determined from the importance of a plurality of procedures included in the execution path, and the type of trace acquisition information in the method included in the execution path is determined according to the importance of the execution path. To decide.
- this embodiment obtains detailed information on a method with high importance from the viewpoint of the importance of an execution path including other methods, not the importance of a single method, and information on methods that are not important. To reduce the amount of trace information data. For this reason, the present embodiment can reduce the data amount of the trace information while appropriately keeping important trace information.
- the above configuration applies the importance of the execution path only to the end point method in the specified execution path.
- all methods are end point methods of any execution path, and importance (acquired information type) of all methods can be determined and updated by the above application.
- the importance of the execution path may be applied to a plurality of methods included in one execution path.
- the importance of the execution path is preferably determined using the importance (trace information) of all the methods included therein, but depending on the design, it is selected according to a preset rule.
- the importance of the execution path may be determined from the importance of some methods. When there is no user designation, it is preferable to repeat the importance calculation for all the execution paths of the trace target program, but it may be performed only in a part of the range by design.
- the importance (trace acquisition level) of the call source method is determined using the importance of the call destination method (trace acquisition level in the following example).
- the execution path including them is changed. It can be prevented that it is not extracted as an important execution path.
- a trace acquisition level is used as a value representing importance, but other values, for example, importance reference values may be used as values representing importance.
- FIG. 27 schematically shows the configuration of the computer according to the present embodiment.
- the Java VM 114 of this embodiment includes a program monitoring processing unit 119 in addition to the configuration of the first embodiment. Further, the program monitoring processor 119 stores the monitoring information 126 in the memory 103. In the following, differences from the first embodiment will be mainly described.
- the program monitoring processing unit 119 has a method importance (trace information acquisition level in the following example) set in the execution path analysis process (see S303 in FIG. 3) greater than or equal to a specified value (eg, “details”). Monitor the method.
- the program monitoring processing unit 119 changes the trace information acquisition level of a method (caller method) that calls a monitored method when a predetermined condition is satisfied, and stores information indicating the change in the monitoring information 126. .
- the profile information update processing unit 118 refers to the monitoring information 126 in the update of the profile information 111, acquires information that identifies the method whose trace information acquisition level has been changed and the trace information acquisition level. Is stored in the trace information acquisition level 1309 (see FIG. 19I).
- the program extension processing unit 104 inserts a probe corresponding to the trace information acquisition level for a method whose trace information acquisition level indicated by the profile information 111 is changed.
- program monitoring processing unit 119 program monitoring processing (S112)
- program monitoring processing (S112) program monitoring processing (S112)
- the program monitoring processing unit 119 executes the program monitoring process (S112).
- the program monitoring processing unit 119 determines in step S1601 whether or not a method having an importance level equal to or higher than a specified value has been called. When a method having an importance level equal to or higher than a specified value is called (S1601: YES), the program monitoring processing unit 119 proceeds to step S1602. If not called (S1601: NO), the program monitoring processor 119 ends the program monitoring process.
- step S1602 the program monitoring processing unit 119 determines whether or not a method whose importance is equal to or higher than a specified value is a starting method.
- the program monitoring processing unit 119 ends the program monitoring processing. If it is not the starting method (S1602: YES), the program monitoring processor 119 proceeds to step S1603.
- the program monitoring processor 119 determines whether or not a performance failure has occurred in the Java virtual machine 114.
- the performance failure is assumed to be when a performance index such as a CPU usage rate, a memory usage amount, or a heap memory usage amount of the Java virtual machine 114 exceeds a preset threshold.
- step S1603 If it is determined in step S1603 that a performance failure has occurred (S1603: YES), the program monitoring processor 119 initializes the monitoring information 126 and ends the program monitoring process. If it is determined that no performance failure has occurred (S1603: NO), the program monitoring processor 119 proceeds to step S1604.
- step S 1604 the program monitoring processing unit 119 increases the trace information acquisition level of the caller of the method having high importance, and stores information indicating this in the monitoring information 126.
- the program monitoring processor 119 ends the program monitoring process.
- the above example raises the trace information acquisition level of the calling method each time a method whose trace information acquisition level is higher than the specified value is called.
- the importance change condition includes a method call, it is possible to acquire trace information useful for failure analysis while suppressing an increase in acquired trace information.
- the specified number of calls which is a condition for raising the caller method
- the condition for changing the trace information acquisition level of the calling method may not include the method call and may include an event different from this.
- the program monitoring processor 119 may raise the trace information acquisition level of the caller method (the importance of the caller method) to match the trace information acquisition level of the callee method (the importance of the callee method), The trace information acquisition level of the caller method may be raised to a value lower than the trace information acquisition level of the callee method.
- the trace information of the program example of FIG. 18 will be described with reference to FIGS. 30A to 30C and FIGS. 31A to 31C. It is assumed that the profile information 111 for the program example in FIG. 18 holds the information in FIGS. 30A to 30C.
- the importance calculation standard is the number of executions, and the importance standard value of each method shown in FIGS. 30A to 30C is the number of executions of the method itself. A smaller importance number (less execution times) indicates a more important method (for failure analysis).
- FIGS. 30A to 30C are examples of display screens of the profile information 111.
- FIG. The trace information acquisition level of each method is determined based on the importance of the method.
- the determined trace information acquisition level is displayed as the trace information acquisition level in each method of FIGS. 30A to 30C.
- methods whose trace information acquisition level is “detailed” are displayed with a thick frame.
- ExceptionExceptionHandler Is a method with high importance. Once the throwException () 2103 is executed, the ExecutionHandler. SampleClassB., which is the method of the caller of throwException (). The trace information acquisition level of method_b (int) 2102 is raised.
- SampleClassB in order to maximize the trace information acquisition level when a method with high importance is executed, SampleClassB.
- the trace information acquisition level of method_b (int) 2103 is set to “detail”.
- FIG. 31A shows an example 2201 of trace information at this time. In the information 2201 in FIG. 31A, it is difficult to specify the cause of the failure.
- SampleClassB SampleClassA., which is a method of calling method_b (int).
- the trace information acquisition level of method_a () is also set to “detail”.
- FIG. 31B shows a trace information example 2202 at this time.
- the information 2202 in FIG. 31B is more detailed than the information in FIG. 31A, but it cannot be determined whether the cause of the failure is in method_a () or method_b (int).
- FIG. 31C shows an example of trace information 2203 at this time. From this information, the cause of the failure is SampleClass. It can be seen that the cause is that a negative number is assigned to id which is an internal variable of method_a ().
- the acquisition information type of each method is determined from the importance of the method alone, and then the trace information acquisition level importance of the caller method is updated according to the trace information acquisition level of the callee method.
- the trace acquisition level (importance) in the method is determined from the importance of the execution path, and the acquisition level can be updated by the method of this embodiment. it can.
- Information including programs and data for realizing each function is a storage device having a non-temporary storage medium such as a nonvolatile semiconductor memory, hard disk, SSD (Solid State Drive), or an IC card, SD card, DVD, etc. Can be stored in a computer-readable non-transitory storage medium.
- a non-temporary storage medium such as a nonvolatile semiconductor memory, hard disk, SSD (Solid State Drive), or an IC card, SD card, DVD, etc.
- the program is executed by the processor to perform the specified processing using the memory and port.
- the description with the processing unit (program) as the subject may be an explanation with the processor as the subject.
- the processing executed by the program is processing performed by a computer and a computer system on which the program operates.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
In one embodiment of the present invention, a probe in an expansion program acquires trace information of a type that has been set for a procedure in each of a plurality of procedures included in an execution path. A level-of-importance calculation processor determines the level of importance of each of the plurality of procedures by using the trace information, and uses the level of importance of a procedure included in the plurality of procedures to determine a new level of importance for establishing the type of trace information to be acquired in another procedure. The level-of-importance calculation processor updates the type of trace information to be acquired in the other procedure in accordance with the new level of importance for establishing the type of trace information thus determined.
Description
本出願は、平成23年(2011年)2月14日に出願された日本出願である特願2011-28941の優先権を主張し、その内容を参照することにより、本出願に取り込む。
This application claims the priority of Japanese Patent Application No. 2011-28941, which was filed on February 14, 2011, and is incorporated herein by reference.
本発明は、トレース情報取得方法、コンピュータシステム及びプログラムに関し、特にプログラムの実行におけるトレース情報の取得に関する。
The present invention relates to a trace information acquisition method, a computer system, and a program, and more particularly to acquisition of trace information in program execution.
企業その他の組織の業務で使用される業務システムは、実行されるプログラムを含め、高い信頼性が求められている。そのため、業務システムにおけるプログラムの実行において何らかの障害が発生した場合に、システム保守管理者は、迅速にその障害からシステムを回復させることが求められる。
Business systems used in business operations of companies and other organizations are required to have high reliability including programs to be executed. Therefore, when a failure occurs in the execution of the program in the business system, the system maintenance manager is required to quickly recover the system from the failure.
システムの回復作業では、障害箇所の特定に多くの時間を必要とし、障害回復までの期間が長期化する可能性がある。従って、プログラム実行における障害箇所を効率よく発見する解析手法が求められている。それと同時に、システム管理者は、障害箇所の発見、修正内容の考案及び実際の修正を効率よく進めるために、プログラムの構造及びその実行時の挙動を効率よく把握する必要がある。
In system recovery work, it takes a lot of time to identify the location of the failure, which may prolong the period until failure recovery. Therefore, there is a need for an analysis method that efficiently finds a fault location in program execution. At the same time, the system administrator needs to efficiently grasp the structure of the program and the behavior at the time of execution in order to efficiently find the fault location, devise the contents of correction, and actually correct it.
プログラムの構造及び実行時の挙動を把握するための支援ツールとして、トレーサ(トレースプログラム)がある。トレーサは、実行プログラムにおけるメソッドの呼び出し情報を含むトレース情報ファイルを出力する。システム管理者は、その出力したトレース情報を解析することにより、そのプログラムの実行における障害発生過程を把握することが可能である。
There is a tracer (trace program) as a support tool for grasping the program structure and execution behavior. The tracer outputs a trace information file including method call information in the execution program. The system administrator can grasp the failure occurrence process in the execution of the program by analyzing the output trace information.
トレーサの技術は、例えば、特開2000-259449号公報(特許文献1)に開示されている。特許文献1に記載の技術は、CPU利用率やネットワーク利用率などの計算機資源の使用率の総和から、トレース情報の取得レベルを算出する。さらに、トレース実行点に対して設定されたトレースレベル定数と、算出した取得レベルとを比較することで、当該トレース実行点におけるトレース情報をトレースファイルに出力するか否かを判定する。
The technology of the tracer is disclosed in, for example, Japanese Patent Laid-Open No. 2000-259449 (Patent Document 1). The technique described in Patent Literature 1 calculates the acquisition level of trace information from the sum of the usage rates of computer resources such as the CPU usage rate and the network usage rate. Further, by comparing the trace level constant set for the trace execution point with the calculated acquisition level, it is determined whether or not to output the trace information at the trace execution point to the trace file.
この他、特開2008-257287号公報(特許文献2)は、メソッドの処理時間によって主要メソッドを選定し、その主要メソッドが実行された時の実行経路及び各メソッドの処理時間を取得するプログラム実行トレース取得制御技術を開示している。
In addition, Japanese Patent Laid-Open No. 2008-257287 (Patent Document 2) selects a main method according to the processing time of a method, and executes a program for acquiring an execution path and the processing time of each method when the main method is executed. A trace acquisition control technique is disclosed.
しかしながら、業務システムにおける障害は、実行経路及びプログラム内の値がレアな場合に発生することが多く、又、障害の発生過程は複雑なことが多い。このため、原因を究明するのに長時間を要する。それゆえ、トレーサは、トレース対象プログラムの構造及び動作の理解を助けるトレース情報を取得し、そのトレース情報を提示することで、障害発生箇所及び障害発生過程を提示し、システム管理者が障害発生箇所及び障害発生過程を常時取得できるようにすることが求められている。
However, failures in business systems often occur when the execution path and program values are rare, and the failure generation process is often complex. For this reason, it takes a long time to investigate the cause. Therefore, the tracer acquires trace information that helps understand the structure and operation of the program to be traced, presents the trace information, presents the location of the failure and the failure occurrence process, and the system administrator indicates the location of the failure. In addition, it is required to be able to always obtain the failure occurrence process.
さらに、トレーサは、主に、実運用環境での想定外の障害を解析することを目的としている。その目的を実現する要件として、トレーサは、実運用環境で常時実行し、引数情報を含むトレース情報を取得し続けることが求められている。
Furthermore, the tracer is mainly intended to analyze unexpected failures in the actual operating environment. As a requirement for realizing the purpose, the tracer is required to always execute in an actual operation environment and continuously acquire trace information including argument information.
この点において、常時トレース情報を取得し続けるとログファイルのサイズが膨大になり、ログを出力する際のI/O時間も増大するという問題がある。特許文献1に開示する技術は、資源利用状況によって取得レベルを変更することで、トレース実行点を変更する。これにより、資源利用状況に応じて取得するトレース情報を削減することができる。また、特許文献2が開示する技術は、処理時間により主要メソッドを選択し、主要メソッドを詳細な計測を行う対象として選択する。これにより、取得するトレース情報を削減することができる。
In this respect, there is a problem that if the trace information is continuously acquired, the size of the log file becomes enormous and the I / O time for outputting the log also increases. The technique disclosed in Patent Document 1 changes the trace execution point by changing the acquisition level according to the resource usage status. Thereby, the trace information acquired according to a resource utilization condition can be reduced. The technique disclosed in Patent Document 2 selects a main method according to a processing time, and selects the main method as a target for performing detailed measurement. Thereby, the trace information to be acquired can be reduced.
しかしながら、業務システムは、プログラムの実行において、各手続を独立に実行するのではなく、手続間の呼び出し関係により決まる実行経路において、各手続を実行するものである。即ち、プログラム実行における障害発生の可能性は実行経路によって変化し、同一の手続であっても、異なる実行経路では異なる確率で障害が発生し得る。そのため、各手続で取得するトレース情報は、その手続の性質のみならず、その手続が実行される実行経路の性質を考慮することが重要である。
However, the business system does not execute each procedure independently in executing the program, but executes each procedure in an execution path determined by the calling relationship between procedures. That is, the possibility of occurrence of a failure in program execution varies depending on the execution path, and even in the same procedure, a failure can occur with different probabilities in different execution paths. Therefore, it is important for the trace information acquired in each procedure to consider not only the nature of the procedure but also the nature of the execution path on which the procedure is executed.
上記従来技術は、各トレース実行点又はメソッドについて、個別に取得するトレース情報についての判定を行う。そのため、トレース情報を削減することができるものの障害解析において重要となる情報が得られない可能性がある。従って、プログラムの実行における障害解析に重要なトレース情報をより適切に取得できる技術が望まれる。
The above conventional technology makes a determination on the trace information to be acquired individually for each trace execution point or method. Therefore, although trace information can be reduced, there is a possibility that important information in failure analysis cannot be obtained. Therefore, a technique capable of more appropriately acquiring trace information important for failure analysis in program execution is desired.
本発明の一態様は、プログラムを実行するコンピュータを含むコンピュータシステムが、前記プログラムの実行におけるトレース情報を取得する方法である。この方法は、前記プログラムの実行における実行経路に含まれる複数の手続のそれぞれにおいて、当該手続に対して設定されている種類のトレース情報を取得する。取得した前記トレース情報を記憶領域に格納する。前記複数の手続のそれぞれの重要度を、前記記憶領域に格納されているトレース情報を用いて決定する。前記複数の手続に含まれる手続の重要度を用いて、前記複数の手続に含まれる他の手続において取得するトレース情報の種類を決める新たな重要度を決定する。前記決定したトレース情報の種類を決める新たな重要度に従って、前記他の手続において取得するトレース情報の種類を更新する。前記他の手続の実行において、前記更新した種類のトレース情報を取得する。
One aspect of the present invention is a method in which a computer system including a computer that executes a program acquires trace information in the execution of the program. In this method, in each of a plurality of procedures included in the execution path in the execution of the program, the type of trace information set for the procedure is acquired. The acquired trace information is stored in a storage area. The importance of each of the plurality of procedures is determined using trace information stored in the storage area. Using the importance level of the procedures included in the plurality of procedures, a new importance level that determines the type of trace information acquired in the other procedures included in the plurality of procedures is determined. The type of trace information acquired in the other procedure is updated according to a new importance level that determines the type of the determined trace information. In the execution of the other procedure, the updated type of trace information is acquired.
本発明の一態様によれば、プログラムの実行におけるトレース情報をより適切に取得することが出来る。
According to one aspect of the present invention, it is possible to more appropriately acquire trace information in program execution.
以下、本発明を実施するための形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
Hereinafter, modes for carrying out the present invention will be described. For clarity of explanation, the following description and drawings are omitted and simplified as appropriate. Moreover, in each drawing, the same code | symbol is attached | subjected to the same element and the duplication description is abbreviate | omitted as needed for clarification of description.
本実施形態は、プログラム実行において、障害解決に有効なトレース情報を効率よく収集する好ましい方法を説明する。以下においては、好ましい例として、Java(登録商標)システムに本発明を適用した例を説明する。本発明は、オブジェクト指向言語、特にJavaによるプログラムを実行するシステムに好適であるが、Javaと異なるオブジェクト指向言語又はオブジェクト指向言語と異なる言語で記述されたプログラムを実行するシステムに対しても適用することができる。
This embodiment describes a preferred method for efficiently collecting trace information effective for solving a problem in program execution. In the following, an example in which the present invention is applied to a Java (registered trademark) system will be described as a preferred example. The present invention is suitable for an object-oriented language, particularly a system for executing a program by Java, but is also applied to an object-oriented language different from Java or a system for executing a program written in a language different from an object-oriented language. be able to.
〔第1の実施形態〕
本実施形態は、実行するJavaプログラムに対して、トレース情報取得用のプローブを挿入する。本実施形態は、プローブによりトレース情報を取得しながら、各実行経路における手続の取得情報種類を決定することにより、低オーバヘッドでプログラム実行における障害解決に有用な情報を取得する。 [First Embodiment]
In this embodiment, a probe for acquiring trace information is inserted into a Java program to be executed. In this embodiment, while acquiring trace information with a probe, information useful for solving a problem in program execution is acquired with low overhead by determining the acquisition information type of a procedure in each execution path.
本実施形態は、実行するJavaプログラムに対して、トレース情報取得用のプローブを挿入する。本実施形態は、プローブによりトレース情報を取得しながら、各実行経路における手続の取得情報種類を決定することにより、低オーバヘッドでプログラム実行における障害解決に有用な情報を取得する。 [First Embodiment]
In this embodiment, a probe for acquiring trace information is inserted into a Java program to be executed. In this embodiment, while acquiring trace information with a probe, information useful for solving a problem in program execution is acquired with low overhead by determining the acquisition information type of a procedure in each execution path.
本実施形態のシステムは、実行経路を特定し、その実行経路の重要度に従って実行経路内のメソッドにおいて取得するトレース情報の種類を決定する。Javaにおいて、メソッドは手続であり、実行されるプログラムである。Javaプログラムの実行経路は、一つ又は複数のメソッドを含む。重要度は障害の発生しやすさを表す指標である。
The system of this embodiment identifies an execution path and determines the type of trace information to be acquired in a method in the execution path according to the importance of the execution path. In Java, a method is a procedure and a program to be executed. The execution path of the Java program includes one or more methods. The importance is an index representing the likelihood of failure.
本実施形態のシステムは、障害が発生しやすい実行経路又はメソッドの重要度を高くし、そこにおいて詳細なトレース情報を取得する。同様に、障害が発生しにくい実行経路又はメソッドの重要度を低くして、そこで取得するトレース情報を簡略化する。これにより、障害解析に有用なトレース情報を取得すると共に取得トレース情報のデータ量を低減する。
The system according to the present embodiment increases the importance of an execution path or a method in which a failure is likely to occur, and acquires detailed trace information there. Similarly, the importance of an execution path or method in which a failure is unlikely to occur is reduced, and the trace information acquired there is simplified. As a result, trace information useful for failure analysis is acquired, and the amount of acquired trace information is reduced.
図1は、本実施形態のトレース情報取得方法を実行する装置の構成を模式的に示すブロック図である。コンピュータ101は、プロセッサであるCPU102及び記憶装置であるメモリ103を有する。プロセッサは、複数の1つ又は複数のプロセッサコアを含むことができ、複数のプロセッサパッケージを含んでいてもよい。CPU102は、Java仮想マシン(JavaVM)114を実行する。
FIG. 1 is a block diagram schematically showing the configuration of an apparatus that executes the trace information acquisition method of this embodiment. The computer 101 includes a CPU 102 that is a processor and a memory 103 that is a storage device. The processor may include a plurality of one or more processor cores and may include a plurality of processor packages. The CPU 102 executes a Java virtual machine (Java VM) 114.
Java仮想マシン114は、プログラム拡張処理部104、重要度計算処理部105、トレース情報出力処理部107、画面表示処理部115、プログラム読込処理部116、プロファイル情報更新処理部118及びプログラム実行処理部120を含む。これらはプログラムであり、CPU102は、各プログラムに従って動作することによって、各処理部として機能することができる。
The Java virtual machine 114 includes a program expansion processing unit 104, an importance calculation processing unit 105, a trace information output processing unit 107, a screen display processing unit 115, a program reading processing unit 116, a profile information update processing unit 118, and a program execution processing unit 120. including. These are programs, and the CPU 102 can function as each processing unit by operating according to each program.
図1は、説明の便宜上、CPU102内に各処理部を示しているが、実際の動作において、典型的には、各プログラムは、外部記憶装置131又は他の不揮発性記憶装置からメモリ103にロードされ、CPU102は各プログラムのコマンド及びデータをメモリ103から取得して、そのコマンドに従って動作する。CPU102の処理結果は、メモリ103に格納されたデータに反映される。ユーザは、入力装置192(例えば、マウスやキーボード)によりコンピュータ101に情報を入力することができる。表示装置191(例えば、液晶表示装置)は、ユーザ設定の画像、取得したトレース情報の画像、その他の画像を表示する。
FIG. 1 shows each processing unit in the CPU 102 for convenience of explanation, but in an actual operation, each program is typically loaded into the memory 103 from the external storage device 131 or another nonvolatile storage device. Then, the CPU 102 acquires commands and data of each program from the memory 103 and operates according to the commands. The processing result of the CPU 102 is reflected in the data stored in the memory 103. A user can input information to the computer 101 using an input device 192 (for example, a mouse or a keyboard). The display device 191 (for example, a liquid crystal display device) displays a user-set image, an acquired trace information image, and other images.
図1において、メモリ103は、プログラム109、拡張プログラム110、取得トレース情報124、コールツリー情報125、プログラム109のプロファイル情報111、出力トレース情報112、トレース情報取得レベル・重要度基準値対応表121、トレース対象指定情報123及びトレース実行経路指定情報122を格納している。各情報は、メモリ103のそれぞれに対応する記憶領域に格納されている。
In FIG. 1, the memory 103 includes a program 109, an extended program 110, acquisition trace information 124, call tree information 125, profile information 111 of the program 109, output trace information 112, trace information acquisition level / importance level reference value correspondence table 121, Trace target designation information 123 and trace execution path designation information 122 are stored. Each information is stored in a storage area corresponding to each memory 103.
プログラム109はトレース対象であり、拡張プログラム110はプローブが挿入されたプログラムである。取得トレース情報124は、プローブが拡張プログラム110の実行において取得した情報であり、トレーサの内部データである。
The program 109 is a trace target, and the extended program 110 is a program in which a probe is inserted. The acquired trace information 124 is information acquired by the probe during the execution of the extension program 110, and is internal data of the tracer.
コールツリー情報125は、拡張プログラム110のメソッド間の読み出し関係を示す情報である。これは、重要度計算処理部105により取得トレース情報124から生成される、重要度計算処理部105の内部データである。プロファイル情報111は、プログラム109のプロファイル情報であり、取得トレース情報124及びプログラム109の解析結果から生成される。
The call tree information 125 is information indicating a read relationship between methods of the extension program 110. This is internal data of the importance calculation processing unit 105 generated from the acquired trace information 124 by the importance calculation processing unit 105. The profile information 111 is profile information of the program 109 and is generated from the acquired trace information 124 and the analysis result of the program 109.
出力トレース情報112は、取得トレース情報124から変換した出力用のトレース情報である。トレース情報取得レベル・重要度基準値対応表121は、メソッドのトレース情報取得レベルと実行経路の重要度基準値とを対応付ける。実行経路の重要度基準値とトレース情報取得レベルは、それぞれ、実行経路の重要度を表す。重要度基準値の算出方法は後述する。
The output trace information 112 is output trace information converted from the acquired trace information 124. The trace information acquisition level / importance level reference value correspondence table 121 associates the trace information acquisition level of the method with the importance level reference value of the execution path. The execution path importance level reference value and the trace information acquisition level indicate the importance level of the execution path. The calculation method of the importance standard value will be described later.
トレース情報取得レベルは、対応するメソッドにおいて取得するトレース情報の種類を特定する。そのため、トレース取得レベル及びそれに関連付けられている実行経路の重要度基準値は、トレース情報取得における当該メソッドの重要度を表す。
The trace information acquisition level specifies the type of trace information acquired by the corresponding method. Therefore, the trace acquisition level and the importance reference value of the execution path associated therewith represent the importance of the method in acquiring trace information.
トレース対象指定情報123は、ユーザにより指定された(限定された)トレース対象を示す。トレース実行経路指定情報122は、ユーザに指定された実行経路の指定されたトレース取得レベルを示す。図1におけるメモリ103が格納する情報の詳細は後述する。
The trace target designation information 123 indicates a trace target designated (limited) by the user. The trace execution path designation information 122 indicates the designated trace acquisition level of the execution path designated by the user. Details of the information stored in the memory 103 in FIG. 1 will be described later.
これらはメモリ103上ではなく、外部記憶装置131がこれらを格納してもよい。本システムの動作に必要なデータ(プログラムを含む)を格納する記憶装置は、複数の異なる種類の構成要素(例えば、異なるコンピュータの記憶装置)を含むことができる。本実施形態において、メモリ103や外部記憶装置131に格納される情報は、データ構造に依存せず、テーブルやリストなど、どのようなデータ構造で表現されていてもよい。この点は、第2の実施形態でも同様である。
These may be stored not in the memory 103 but in the external storage device 131. A storage device that stores data (including programs) necessary for the operation of the system can include a plurality of different types of components (eg, storage devices of different computers). In the present embodiment, the information stored in the memory 103 or the external storage device 131 does not depend on the data structure, and may be expressed in any data structure such as a table or a list. This is the same in the second embodiment.
典型的には、プログラム109、プロファイル情報111、出力トレース情報112、トレース情報取得レベル・重要度基準値対応表121、トレース対象指定情報123、トレース実行経路指定情報122は、外部記憶装置131又は他の不揮発性記憶装置に格納されており、メモリ103にロードされる。メモリ103で更新されたデータ(情報)は、不揮発性メモリ内のデータ(情報)に反映される。
Typically, the program 109, the profile information 111, the output trace information 112, the trace information acquisition level / importance reference value correspondence table 121, the trace target designation information 123, and the trace execution path designation information 122 are the external storage device 131 or others. And is loaded into the memory 103. Data (information) updated in the memory 103 is reflected in data (information) in the nonvolatile memory.
本実施形態のコンピュータシステムにおいて、図1のコンピュータ101上で動作するプログラムの少なくとも一部は、他のコンピュータ上で動作することができる。例えば、Java仮想マシン114の各処理部は、拡張プログラム110を実行するコンピュータ101とは異なるコンピュータにより実行することができる。又、メモリ103に示される拡張プログラム110とは異なるデータ(情報)は、拡張プログラム110とは異なるコンピュータに格納されていてもよい。
In the computer system of this embodiment, at least a part of the program that operates on the computer 101 in FIG. 1 can operate on another computer. For example, each processing unit of the Java virtual machine 114 can be executed by a computer different from the computer 101 that executes the extension program 110. Further, data (information) different from the expansion program 110 shown in the memory 103 may be stored in a computer different from the expansion program 110.
図2は、図1の全体構成図における処理の流れを示す。最初に、プログラム読込処理部116は、メモリ103上に格納されているプログラム109を読み込む(S101)。プログラム読込処理部116は、メモリ103もしくは外部記憶装置131より、トレース対象のプログラム109をJava仮想マシン114に読み込む処理を行う。
FIG. 2 shows the flow of processing in the overall configuration diagram of FIG. First, the program read processing unit 116 reads the program 109 stored on the memory 103 (S101). The program reading processing unit 116 performs processing for reading the program 109 to be traced into the Java virtual machine 114 from the memory 103 or the external storage device 131.
次に、重要度計算処理部105は、プロファイル情報111を参照して、プログラム108における実行経路の特定及びその重要度基準値の計算を行い、その重要度基準値から実行経路に含まれるメソッドのトレース情報取得レベル(プログラム109のメソッドで取得する情報の種類)を決定する(S102)。
Next, the importance level calculation processing unit 105 refers to the profile information 111 to identify the execution path in the program 108 and calculate its importance level reference value. From the importance level reference value, a method included in the execution path is calculated. The trace information acquisition level (the type of information acquired by the method of the program 109) is determined (S102).
次に、プログラム拡張処理部104は、重要度計算処理部105が決定したトレース情報取得レベル応じたトレース情報(コールツリー情報125、プロファイル情報111及び出力トレース情報112の元となるデータ)を取得するためのプローブ(プログラム片)をプログラム109に挿入する(S103)。トレース情報を取得するプローブは、一つ又は複数のプローブで構成される。プログラム拡張処理部104は、その後、プローブを挿入したプログラム109を拡張プログラム110として、メモリ103に格納する。
Next, the program extension processing unit 104 acquires trace information (data based on the call tree information 125, the profile information 111, and the output trace information 112) according to the trace information acquisition level determined by the importance calculation processing unit 105. A probe (program piece) is inserted into the program 109 (S103). The probe for acquiring the trace information is composed of one or a plurality of probes. Thereafter, the program extension processing unit 104 stores the program 109 in which the probe is inserted in the memory 103 as the extension program 110.
次に、プログラム実行処理部120は、トレース情報を取得するためのプローブを挿入した拡張プログラム110を実行する(S104)。プローブは、そのプログラム実行において取得したトレース情報を、メモリ103に格納する。この情報は、図1において取得トレース情報124として示されており、プローブの内部データである。
Next, the program execution processing unit 120 executes the extended program 110 in which a probe for acquiring trace information is inserted (S104). The probe stores the trace information acquired in the program execution in the memory 103. This information is shown as acquired trace information 124 in FIG. 1 and is internal data of the probe.
次に、プロファイル情報更新処理部118は、事前にユーザが指定したプロファイル情報111の更新条件が満足しているかを判定する(S105)。更新条件の一例は、規定時間の経過である。プロファイル情報111を更新する場合(S105:YES)、処理はプロファイル情報更新ステップ(S106)に進む。プロファイル情報111を更新しない場合(S105:NO)、処理はステップS108に進む。
Next, the profile information update processing unit 118 determines whether the update conditions for the profile information 111 specified by the user in advance are satisfied (S105). An example of the update condition is the passage of a specified time. When the profile information 111 is updated (S105: YES), the process proceeds to a profile information update step (S106). When the profile information 111 is not updated (S105: NO), the process proceeds to step S108.
なお、プロファイル情報更新処理部118は、拡張プログラム110中のトレース情報取得プローブが実行される度に更新条件を判定する(S105)こともできるし、ユーザにより予め指定されている時にそれを行ってもよい。
The profile information update processing unit 118 can determine the update condition every time the trace information acquisition probe in the extended program 110 is executed (S105), or perform it when designated in advance by the user. Also good.
ステップS106において、プロファイル情報更新処理部118は、プローブが取得したトレース情報を集計し、メモリ103上のプロファイル情報111を更新する。さらに、プロファイル情報更新処理部118は、トレース情報取得レベル・重要度基準値対応表121を更新する(S107)。
In step S106, the profile information update processing unit 118 totals the trace information acquired by the probe and updates the profile information 111 on the memory 103. Further, the profile information update processing unit 118 updates the trace information acquisition level / importance level reference value correspondence table 121 (S107).
処理は、プロファイル情報111及びトレース情報取得レベル・重要度基準値対応表121の更新後、重要度基準値計算ステップ(S102)に戻る。ステップS102~ステップS107のループにより、プログラム実行中に、プロファイル情報111、トレース情報取得レベル・重要度基準値対応表121、実行経路(コールツリー)及びトレース情報取得レベルが更新される。
The process returns to the importance reference value calculation step (S102) after updating the profile information 111 and the trace information acquisition level / importance reference value correspondence table 121. Through the loop from step S102 to step S107, the profile information 111, the trace information acquisition level / importance level reference value correspondence table 121, the execution path (call tree), and the trace information acquisition level are updated during program execution.
ステップS108において、トレース情報出力処理部107は、拡張プログラム110の実行中に障害が発生した又はユーザが出力指示を出したか否かを判定する。障害が発生している場合又は出力命令が出ている場合(S108:YES)、トレース情報出力処理部107は、トレース情報出力処理を行う(S109)。トレース情報出力処理部107は、プログラム実行処理106で取得したトレース情報124を出力用のトレース情報112に変換し、メモリ103上に出力(格納)する(S109)。
In step S108, the trace information output processing unit 107 determines whether a failure has occurred during execution of the extended program 110 or whether the user has issued an output instruction. When a failure has occurred or an output command has been issued (S108: YES), the trace information output processing unit 107 performs a trace information output process (S109). The trace information output processing unit 107 converts the trace information 124 acquired in the program execution processing 106 into output trace information 112 and outputs (stores) it on the memory 103 (S109).
ステップS108における判定結果がNOである場合、Javaプログラム110は実行し続ける。ユーザがトレースデータの出力命令を出しているかの判定を、トレース情報出力処理部107に代わって、Java仮想マシンのコマンド受付処理部が行ってもよい。
If the determination result in step S108 is NO, the Java program 110 continues to execute. Instead of the trace information output processing unit 107, the Java virtual machine command reception processing unit may determine whether the user has issued a trace data output command.
次に、画面表示処理部115は、ステップS110において、プロファイル情報111及び出力トレース情報112を画面出力するか否かを判定する。画面出力しない場合(S110:NO)、処理は終了する。画面出力する場合(S110:YES)、画面表示処理部115は、ステップS111において、プロファイル情報111をメソッドに関係する情報とその呼出し関係により表示し、出力トレース情報112を障害発生した箇所までの実行経路において表示する。
Next, in step S110, the screen display processing unit 115 determines whether to output the profile information 111 and the output trace information 112 on the screen. If the screen is not output (S110: NO), the process ends. In the case of screen output (S110: YES), in step S111, the screen display processing unit 115 displays the profile information 111 by the information related to the method and the calling relationship, and executes the output trace information 112 up to the location where the failure occurred. Display in the route.
プロファイル情報111及び出力トレース情報112は、設計に従った適切な方法により表示装置191において表示される。本実施形態及び他の実施形態における、プロファイル情報111、出力トレース情報112及び他の表示画像は、表示装置191又は他の表示装置において表示することができる。若しくは、これらをプリンタにより印刷してもよい。
The profile information 111 and the output trace information 112 are displayed on the display device 191 by an appropriate method according to the design. The profile information 111, the output trace information 112, and other display images in the present embodiment and other embodiments can be displayed on the display device 191 or other display devices. Alternatively, these may be printed by a printer.
(重要度計算処理(S102))
以下、図2を参照して説明した処理におけるステップ(処理)の詳細を説明する。最初に、図3を参照して、図2のフローチャートが示す重要度計算処理(S102)を説明する。重要度計算処理部105は、トレース対象プログラムの実行経路の重要度を決定する。本処理における実行経路の重要度を表す最終的な数値は、トレース情報取得レベルである。 (Importance calculation processing (S102))
Details of the steps (processing) in the processing described with reference to FIG. 2 will be described below. First, the importance calculation processing (S102) shown in the flowchart of FIG. 2 will be described with reference to FIG. The importancecalculation processing unit 105 determines the importance of the execution path of the trace target program. The final numerical value indicating the importance of the execution path in this process is the trace information acquisition level.
以下、図2を参照して説明した処理におけるステップ(処理)の詳細を説明する。最初に、図3を参照して、図2のフローチャートが示す重要度計算処理(S102)を説明する。重要度計算処理部105は、トレース対象プログラムの実行経路の重要度を決定する。本処理における実行経路の重要度を表す最終的な数値は、トレース情報取得レベルである。 (Importance calculation processing (S102))
Details of the steps (processing) in the processing described with reference to FIG. 2 will be described below. First, the importance calculation processing (S102) shown in the flowchart of FIG. 2 will be described with reference to FIG. The importance
重要度計算処理部105は、重要度基準に従い、重要度基準値を算出し、その重要度基準値及びトレース情報取得レベル・重要度基準値対応表121から、その実行経路(の終点メソッド)のトレース情報取得レベル(取得するトレース情報の種類)を決定する。
The importance level calculation processing unit 105 calculates the importance level reference value according to the importance level reference, and from the importance level reference value and the trace information acquisition level / importance level reference value correspondence table 121, the execution path (the end point method) of the execution path. Determine the trace information acquisition level (type of trace information to be acquired).
具体的には、図3に示すように、重要度計算処理部105は、最初に、メモリ103上にプロファイル情報111が存在するか否かを判定する(S301)。重要度計算処理部105は、プロファイル情報111が存在しない場合(S301:NO)に、ステップS306に進む。ステップS306において、全てのメソッドのトレース情報取得レベルを初期値である「標準」に設定する。設定された情報はメモリ103内に格納される。トレース情報取得レベルについては図4を参照して後述する。
Specifically, as shown in FIG. 3, the importance calculation processing unit 105 first determines whether or not the profile information 111 exists on the memory 103 (S301). If the profile information 111 does not exist (S301: NO), the importance calculation processing unit 105 proceeds to step S306. In step S306, the trace information acquisition levels of all methods are set to “standard” which is an initial value. The set information is stored in the memory 103. The trace information acquisition level will be described later with reference to FIG.
一方、プロファイル情報111が存在する場合(S301:YES)、重要度計算処理部105は、呼び出し関係構築処理(S302)に進む。呼び出し関係構築処理(S302)において、重要度計算処理部105は、プロファイル情報111を読み込み、トレース対象プログラムに対するメソッドの呼び出し関係(コールツリー)を構築する(図6の例を参照)。なお、ここでのコールツリーは、メソッドが、どのメソッドから呼ばれ、どのメソッドを呼ぶのか、を表す情報である。メモリ103は、このコールツリー情報125を格納する。
On the other hand, when the profile information 111 exists (S301: YES), the importance calculation processing unit 105 proceeds to the call relationship construction processing (S302). In the call relationship construction process (S302), the importance calculation processing unit 105 reads the profile information 111 and constructs a method call relationship (call tree) for the trace target program (see the example in FIG. 6). Here, the call tree is information indicating which method is called from which method and which method is called. The memory 103 stores this call tree information 125.
図4は、プロファイル情報111の構成例を示している。プロファイル情報111は、メソッドの引数・内部変数情報1301、メソッドの呼び出し経路情報1302、メソッドの実行回数1303、メソッドの実行時間情報1304、メソッドの行数情報1305、メソッドの分岐命令数情報1306、メソッドの呼び出し関係情報1307、メソッドの総命令数情報1308及びメソッドのトレース情報取得レベル1309(ステップS105で計算される情報)を有する。プロファイル情報111は、プロファイル情報更新処理(S106)で、トレース対象プログラムの解析結果及びトレーサ内部のデータである取得トレース情報124により、作成、更新される。
FIG. 4 shows a configuration example of the profile information 111. Profile information 111 includes method argument / internal variable information 1301, method call path information 1302, method execution count 1303, method execution time information 1304, method row count information 1305, method branch instruction count information 1306, method Call relation information 1307, method total instruction count information 1308, and method trace information acquisition level 1309 (information calculated in step S105). The profile information 111 is created and updated in the profile information update process (S106) based on the analysis result of the trace target program and the acquired trace information 124 which is data inside the tracer.
次に、重要度計算処理部105は、実行経路解析処理を行う(S303)。この処理において、重要度計算処理部105は、呼び出し関係構築処理(S302)で作成したコールツリーにおいて、各メソッドの特性情報及び重要度情報を追加し、さらに、コールツリーにおける実行経路を抽出する。
Next, the importance calculation processing unit 105 performs an execution path analysis process (S303). In this process, the importance calculation processing unit 105 adds the characteristic information and importance information of each method to the call tree created in the call relationship construction process (S302), and further extracts the execution path in the call tree.
次に、重要度計算処理部105は、実行経路の重要度基準値計算処理(S304)において、実行経路解析処理(S303)で抽出した各実行経路の重要度基準値を計算する。実行経路の重要度基準値は、その実行経路の重要度を表す値である。重要度基準値の算出方法は後述する。
Next, the importance calculation processing unit 105 calculates the importance reference value of each execution route extracted in the execution route analysis processing (S303) in the importance reference value calculation processing (S304) of the execution route. The importance reference value of the execution path is a value representing the importance of the execution path. The calculation method of the importance standard value will be described later.
次に、重要度計算処理部105は、トレース情報取得レベル判定処理(S305)において、重要度基準値計算処理(S304)で計算した実行経路の重要度基準値から、メモリ103上のトレース情報取得レベル・重要度基準値対応表121を参照して、その実行経路に含まれるメソッド(以下に説明する好ましい例において実行経路の終点メソッド)のトレース情報取得レベルを決定する。
Next, the importance calculation processing unit 105 acquires the trace information on the memory 103 from the importance reference value of the execution path calculated in the importance reference value calculation process (S304) in the trace information acquisition level determination process (S305). With reference to the level / importance reference value correspondence table 121, the trace information acquisition level of the method included in the execution path (in the preferred example described below, the end method of the execution path) is determined.
図5は、トレース情報取得レベル・重要度基準値対応表121の一例を示している。この表121は、重要度基準値とトレース情報取得レベルとを対応付ける。トレース情報取得レベルは、トレース対象プログラム109の各メソッドに割り当てられる。トレース情報取得レベルは、そのメソッドで取得する情報の種類を特定する。トレース情報取得レベルは、実行経路の重要度を表すと共に、実行経路における当該メソッドの重要度を表す。
FIG. 5 shows an example of the trace information acquisition level / importance level reference value correspondence table 121. This table 121 associates importance level reference values with trace information acquisition levels. The trace information acquisition level is assigned to each method of the trace target program 109. The trace information acquisition level specifies the type of information acquired by the method. The trace information acquisition level represents the importance of the execution path and the importance of the method in the execution path.
本例は、図5に例示するように、「詳細」、「標準」、「簡易」の3段階のレベルを備えている。上述のように、トレース情報取得レベルの初期値は「標準」である。プローブは、「詳細」レベルでは、メソッドの呼び出し関係、メソッドの引数・返り値及び内部変数の値を取得する。「標準」レベルにおいて、プローブは、メソッドの呼び出し関係及びメソッドの引数・返り値を取得し、内部変数の値の取得を省略する。そして「簡易」レベルでは、プローブは、メソッドの呼び出し関係のみを取得する。
This example has three levels of “detail”, “standard”, and “simple” as illustrated in FIG. As described above, the initial value of the trace information acquisition level is “standard”. At the “detail” level, the probe acquires the method call relationship, the method argument / return value, and the value of the internal variable. At the “standard” level, the probe acquires method call relationships and method arguments / return values, and omits acquiring internal variable values. At the “simple” level, the probe acquires only the method call relationship.
「詳細」レベルの情報から、プロファイル情報111における、メソッドの引数・内部変数情報1301、メソッドの呼び出し経路情報1302、メソッドの実行回数1303、メソッドの実行時間情報1304、メソッドの呼び出し関係情報1307を生成することができる。「標準」又は「簡易」レベルのトレース情報を取得するメソッドについては、メソッドの引数・内部変数情報1301の一部又は全部が省略される。
Generate method argument / internal variable information 1301, method call path information 1302, method execution count 1303, method execution time information 1304, and method call relation information 1307 in profile information 111 from “detail” level information can do. For a method for acquiring “standard” or “simple” level trace information, part or all of the method argument / internal variable information 1301 is omitted.
図5に示す例は、トレース情報取得レベルを区分する基準として、実行経路の重要度基準値の統計情報(平均、分散など)を用いる。トレース情報取得レベルの決定方法として、設計により適切な方法が設定される。例えば、統計情報を使用することなく、実行経路の重要度基準値と規定値とを比較して、トレース情報取得レベルを決定してもよい。
The example shown in FIG. 5 uses statistical information (average, variance, etc.) of the importance standard value of the execution path as a criterion for classifying the trace information acquisition level. As a method for determining the trace information acquisition level, an appropriate method is set by design. For example, the trace information acquisition level may be determined by comparing the importance reference value of the execution path with a specified value without using statistical information.
次に、図3のフローチャートに示す呼び出し関係構築処理(S302)の流れを説明する。上述のように、呼び出し関係構築処理(S302)は、トレース対象プログラム109におけるメソッドの呼び出し関係を構築する(コールツリー情報125の生成)。図6は、コールツリーの一例を示している。
Next, the flow of the call relationship construction process (S302) shown in the flowchart of FIG. 3 will be described. As described above, the call relationship construction process (S302) constructs a method call relationship in the trace target program 109 (generation of call tree information 125). FIG. 6 shows an example of a call tree.
図6において、矩形で囲まれたメソッド(ノード)の内、メソッド4503、4504、4506~4508が、参照符号により指示されている。また、メソッド間の矢印がエッジであり、一つのエッジ4505が、参照符号により指示されている。さらに、本例のコールツリーは、メソッド間の呼び出し関係の他、各エッジでの呼び出し回数、メソッドの特性情報及びメソッドの重要度情報を含む。
In FIG. 6, methods 4503, 4504, and 4506 to 4508 are indicated by reference numerals among methods (nodes) surrounded by a rectangle. An arrow between methods is an edge, and one edge 4505 is indicated by a reference symbol. Further, the call tree of this example includes the number of calls at each edge, method characteristic information, and method importance information, in addition to the call relationship between methods.
図6に示すコールツリーにおいて、各メソッドの情報は、メソッドを特定する識別子のほか、実行時間、複雑度(例えば分岐命令数)、実行回数などの特性情報及び重要度情報を含む。重要度情報は、実行経路(メソッド)の重要度に関する情報である。エッジに付与されている数字は、呼び出し元メソッドから呼び出し先メソッドの呼び出し回数を示している。一つのメソッドの実行回数は、全ての読み出し元メソッドからの呼び出し回数の合計である。
In the call tree shown in FIG. 6, information on each method includes characteristic information and importance information such as an execution time, complexity (for example, the number of branch instructions), and the number of executions, in addition to an identifier for specifying the method. The importance level information is information related to the importance level of the execution path (method). The number given to the edge indicates the number of calls from the caller method to the callee method. The number of executions of one method is the total number of calls from all the read source methods.
呼び出し関係構築処理(S302)において、重要度計算処理部105は、プロファイル情報111内のメソッドの呼び出し関係情報(図4の呼び出し関係情報1307)から、メソッドをノード、呼び出し関係をエッジに対応させたコールツリーを構築する。このコールツリーは、呼び出し回数、メソッドの特性情報及び重要度情報を含まない。このような情報は、この後の実行経路解析処理(S303)で付加される。呼び出し関係構築処理(S302)がこれらを付加してもよい。
In the call relation construction process (S302), the importance calculation processing unit 105 associates the method with the node and the call relation with the edge from the method call relation information (call relation information 1307 in FIG. 4) in the profile information 111. Build a call tree. This call tree does not include the number of calls, method characteristic information, and importance information. Such information is added in the subsequent execution path analysis process (S303). These may be added by the call relationship construction process (S302).
次に、実行経路解析処理(図3のS303)の流れを図7のフローチャートを参照して説明する。実行経路解析処理(S303)において、重要度計算処理部105は、呼び出し関係構築処理(S302)で構築したコールツリーから実行経路を抽出し、メモリ103上に保持する。
Next, the flow of the execution path analysis process (S303 in FIG. 3) will be described with reference to the flowchart in FIG. In the execution path analysis process (S 303), the importance level calculation processing unit 105 extracts an execution path from the call tree constructed in the call relation construction process (S 302) and stores it in the memory 103.
図7のフローチャートに示すように、最初に、ステップS501において、重要度計算処理部105は、呼び出し関係構築処理(S302)で構築したコールツリーに対して、メソッド(ノード)の特性情報、重要度情報及びエッジの呼び出し回数の情報(コールツリーの特性情報)を付加する。新たな情報(コールツリー特性情報)を付加されたコールツリー(コールツリー情報125)は、図6に示す構成を有する。
As shown in the flowchart of FIG. 7, first, in step S501, the importance calculation processing unit 105 performs method (node) characteristic information and importance on the call tree constructed in the call relationship construction processing (S302). Information and edge call count information (call tree characteristic information) are added. The call tree (call tree information 125) to which new information (call tree characteristic information) is added has the configuration shown in FIG.
図8は、コールツリーのメソッド(ノード)に付与される情報の一例を示しており、ノード4503(methodA)を例示している。本例において、各ノードは、メソッド特性情報として、該当メソッドの実行時間、複雑度である分岐命令数、そして実行回数を有する。
FIG. 8 shows an example of information given to the method (node) of the call tree, and illustrates the node 4503 (method A). In this example, each node has, as method characteristic information, the execution time of the corresponding method, the number of branch instructions as complexity, and the number of executions.
重要度計算処理部105は、プロファイル情報111から、これらの情報を取得することができる。具体的には、メソッド実行時間情報1304、メソッド分岐命令数情報1306及びメソッド実行回数情報1303から、上記メソッドの特性情報を取得する。
The importance calculation processing unit 105 can acquire these pieces of information from the profile information 111. Specifically, the method characteristic information is acquired from the method execution time information 1304, the method branch instruction number information 1306, and the method execution number information 1303.
重要度情報は、実行経路の重要度(トレース情報取得レベルと対応づけられるメソッドの重要度)についての情報を含む。具体的には、実行経路の重要度を決定する基準である重要度基準、その実行基準から算出された実行経路の重要度基準値、そして、重要度基準値から特定された当該メソッドにおけるトレース情報取得レベルを含む。メソッドのトレース情報取得レベルはこの重要度基準値から決定され、そのメソッドの重要度を表す値でもある。重要度基準値は実行経路の重要度を表すと共に、トレース情報取得レベルを決めるメソッドの重要度を表す。重要度の決定方法の詳細は後述する。
The importance level information includes information on the importance level of the execution path (the importance level of the method associated with the trace information acquisition level). Specifically, an importance criterion, which is a criterion for determining the importance of an execution route, an importance criterion value of an execution route calculated from the execution criterion, and trace information in the method specified from the importance criterion value Includes acquisition level. The trace information acquisition level of the method is determined from this importance level reference value, and is also a value representing the importance level of the method. The importance standard value represents the importance of the execution path and the importance of the method that determines the trace information acquisition level. Details of the importance determination method will be described later.
実行経路解析処理においては、重要度基準値の値及びトレース情報取得レベルの値は前回値、初期値又は未設定である。これらの新たな値(更新値)は、この後の重要度計算処理(図3のS304)において決定される。
In the execution path analysis process, the value of the importance standard value and the value of the trace information acquisition level are the previous value, the initial value, or not set. These new values (updated values) are determined in the importance calculation process (S304 in FIG. 3).
図2のフローチャートにおけるステップS101~ステップS107のループから理解されるように、呼び出し関係図(実行経路)、実行経路の重要度基準値及びメソッドのトレース情報取得レベルは、プログラムの実行中に更新される(動的に変えられる)。これにより、プログラム実行中のコールツリー(特性情報を含む)の変化に応じて、各メソッドの適切なトレース情報の種類を設定することができる。なお、更新されたレベルは、更新前のレベルと同一又は異なる値である。
As can be understood from the loop of steps S101 to S107 in the flowchart of FIG. 2, the call relationship diagram (execution path), the execution path importance level reference value, and the method trace information acquisition level are updated during the execution of the program. (Changed dynamically) Accordingly, it is possible to set an appropriate type of trace information for each method in accordance with a change in a call tree (including characteristic information) during program execution. The updated level is the same as or different from the level before the update.
図8の例において、重要度基準は実行回数である。より少ない実行回数がより高い重要度を示し、実行回数の増加(重要度基準値の増加)により、重要度は低下する。重要度基準は、メソッドの特性情報から選択された一つ又は複数の要素で構成される。重要度基準として使用する特性要素及び重要度基準値の算出方法は、重要度計算処理部105に予め設定されている。好ましい例において、ユーザが重要度情報を変更することができる。
In the example of FIG. 8, the importance level is the number of executions. A smaller number of executions indicates a higher importance, and the importance decreases with an increase in the number of executions (increase in the importance level reference value). The importance criterion is composed of one or a plurality of elements selected from the characteristic information of the method. The characteristic element used as the importance criterion and the calculation method of the importance criterion value are preset in the importance calculation processing unit 105. In a preferred example, the user can change the importance information.
具体的には、ユーザは、コンピュータ101の入力装置192又はネットワークによる接続された他のコンピュータの入力装置により、重要度基準及び重要度算出方法を指定する。重要度計算処理部105は、指定されたメソッドの特性要素の値を、指定された方法により計算することで、重要度(基準値)を算出する。重要度基準値算出の詳細は後述する。
Specifically, the user designates the importance criterion and the importance calculation method using the input device 192 of the computer 101 or the input device of another computer connected via the network. The importance calculation processing unit 105 calculates the importance (reference value) by calculating the value of the characteristic element of the specified method by the specified method. Details of the importance level reference value calculation will be described later.
次に、重要度計算処理部105は、呼び出し関係の起点となるメソッドを選択し、その起点を実行経路として登録する(S502)。本例実施形態では、起点をメソッドの呼び出し関係の中で最初に実行される(他のメソッドから呼び出されることなく)メソッドとする。起点は、ユーザが指定した任意のメソッドでもよい。図6の例において、methodAのノード4503とmethodHのノード4507が、それぞれ起点メソッドに該当する。このように、本実施形態では、起点のメソッドのみで、一つの実行経路を構成する。
Next, the importance calculation processing unit 105 selects a method as a starting point of the call relationship, and registers the starting point as an execution path (S502). In the present embodiment, the starting point is the method that is executed first (without being called from another method) in the method calling relationship. The starting point may be any method specified by the user. In the example of FIG. 6, a node 4503 of methodA and a node 4507 of methodH correspond to the origin method. As described above, in the present embodiment, one execution path is configured by only the starting method.
次に、重要度計算処理部105は、実行経路の終点を、起点に隣接したメソッドから選択する(S503)。例えば、図6の例において、methodAのノード4503に隣接するmethodBのノード4504が、ノード4503-ノード4504の実行経路における終点である。又、methodAのノード4503に隣接するmethodDのノード4508は、ノード4503-ノード4508の実行経路における終点である。
Next, the importance calculation processing unit 105 selects the end point of the execution path from the methods adjacent to the start point (S503). For example, in the example of FIG. 6, the node 4504 of methodB adjacent to the node 4503 of methodA is the end point in the execution path of the node 4503-node 4504. A node 4508 of methodD adjacent to the node 4503 of methodA is an end point in the execution path of the node 4503 to the node 4508.
次に、重要度計算処理部105は、ステップS504において、呼び出し関係構築処理(S302)で作成したメソッドの呼び出し関係内に、未探索のメソッドがあるか判定する。未探索のメソッドがある場合(S504:YES)、重要度計算処理部105はステップS505に進む。未探索のメソッドがない場合(S504:NO)、ステップS507に進む。
Next, in step S504, the importance calculation processing unit 105 determines whether there is an unsearched method in the method calling relationship created in the calling relationship construction processing (S302). When there is an unsearched method (S504: YES), the importance calculation processing unit 105 proceeds to step S505. If there is no unsearched method (S504: NO), the process proceeds to step S507.
ステップS505において、重要度計算処理部105は、起点から終点までの実行経路を、メモリ103に格納する。上述のように、例えば、ノード4503-ノード4504が一つの実行経路であり、ノード4503-ノード4508も他の一つの実行経路である。
In step S 505, the importance calculation processing unit 105 stores the execution path from the start point to the end point in the memory 103. As described above, for example, the node 4503-node 4504 is one execution path, and the node 4503-node 4508 is also another execution path.
次に、ステップS506において、重要度計算処理部105は、現在の終点に隣接した未調査のメソッドを新たな終点と定義する。例えば、図6の例において、methodBのノード4504に隣接するmethodCのノード4506を、新たな終点と定義する。ステップS506の終了後、重要度計算処理部105は、ステップS504に戻る。
Next, in step S506, the importance calculation processing unit 105 defines an unexamined method adjacent to the current end point as a new end point. For example, in the example of FIG. 6, a node 4506 of methodC adjacent to the node 4504 of methodB is defined as a new end point. After step S506 ends, the importance calculation processing unit 105 returns to step S504.
ステップS504において未探索のメソッドがないと判定した場合(S504:NO)、重要度計算処理部105は、ステップS507において、ステップS502で選択した起点とステップS506、S508(S508は後述)で選択した終点が異なっているかを判定する。
If it is determined in step S504 that there is no unsearched method (S504: NO), the importance calculation processing unit 105 selects in step S507 the starting point selected in step S502 and steps S506 and S508 (S508 will be described later). Determine if the end points are different.
起点と終点が異なっている場合(S507:YES)、重要度計算処理部105は、ステップS508に進む。起点と終点が一致している場合(S507:NO)、重要度計算処理部105は、実行経路解析処理を終了する。ステップS508において、重要度計算処理部105は、終点を呼び出し元のメソッドに戻す。ステップS508終了後、重要度計算処理部105は、ステップS504に戻る。
If the starting point and the ending point are different (S507: YES), the importance calculation processing unit 105 proceeds to step S508. When the starting point and the ending point coincide with each other (S507: NO), the importance degree calculation processing unit 105 ends the execution route analysis process. In step S508, the importance calculation processing unit 105 returns the end point to the calling method. After step S508 ends, the importance calculation processing unit 105 returns to step S504.
図7を参照した説明から理解されるように、終点メソッドはコールツリーの終端のメソッド(他のメソッドを呼び出さないメソッドであり、図6の例において、例えばmethodCのノード4506)の他、起点メソッドから呼び出し関係(エッジ)によって終端メソッドまで続く経路に含まれる全てのメソッド(例えばmethodBのノード4504を含む)が終点メソッドである。登録される実行経路は、起点メソッドから呼び出し関係(エッジ)が続く任意のメソッドまでの全ての経路である。
As can be understood from the description with reference to FIG. 7, the end point method is a method at the end of the call tree (a method that does not call other methods, for example, the node 4506 of methodC in the example of FIG. 6), as well as the start method. All methods (including, for example, the node 4504 of methodB) included in the path that continues from to the end method by the call relationship (edge) are end point methods. The registered execution paths are all paths from an origin method to an arbitrary method having a call relationship (edge).
例えば、図6における起点ノード4503からノード4506まで続く経路において、ノード4504及びノード4506が終点ノードである。従って、一つの実行経路は起点ノード4503からノード4504までであり、他の一つの実行経路は、起点ノード4503からノード4506までである。更に、本実施形態では、起点ノードのみで一つの実行経路を構成するようになっている。
For example, in the path from the starting node 4503 to the node 4506 in FIG. 6, the nodes 4504 and 4506 are end nodes. Accordingly, one execution path is from the origin node 4503 to the node 4504, and the other one execution path is from the origin node 4503 to the node 4506. Furthermore, in this embodiment, one execution path is configured by only the starting node.
プログラムの実行においては、一回の処理はコールツリー上のいずれのメソッドにおいても終了することがあり得る。例えば、ある処理は、methodA及びmethodBの実行により終了し、他のある処理は、methodA、methodB及びmethodCの実行により終了する。上述のように、起点メソッドから呼び出し関係によるつながる各メソッドまでの経路を実行経路と登録することで、より適切に実行経路及び実行経路に含まれるメソッドの重要度を決定することができる。
In the execution of a program, a single process can be terminated in any method on the call tree. For example, a certain process is terminated by executing methodA and methodB, and another certain process is terminated by executing methodA, methodB, and methodC. As described above, by registering the path from the starting method to each method connected by the calling relationship as the execution path, it is possible to more appropriately determine the importance of the method included in the execution path and the execution path.
次に、図9のフローチャートを参照して、実行経路の重要度計算処理(図3のS304)の流れを説明する。実行経路の重要度基準値計算処理(S304)において、重要度計算処理部105は、実行経路解析処理(図3のS303)で解析した実行経路の重要度基準値を求める。
Next, the flow of the importance calculation processing of the execution path (S304 in FIG. 3) will be described with reference to the flowchart in FIG. In the execution path importance level reference value calculation process (S304), the importance level calculation processing unit 105 obtains the execution path importance level reference value analyzed in the execution path analysis process (S303 in FIG. 3).
まず、重要度計算処理部105は、実行経路の重要度基準値の計算が完了していない実行経路の有無を判定する(S701)。重要度基準値の計算が完了していない実行経路がある場合(S701:YES)、重要度計算処理部105は、ステップS702に進む。全実行経路の重要度基準値の計算が完了した場合(S701:NO)、重要度計算処理部105は、実行経路の重要度基準値計算処理(S304)を終了する。
First, the importance calculation processing unit 105 determines whether or not there is an execution path for which the calculation of the importance reference value of the execution path has not been completed (S701). When there is an execution path for which the calculation of the importance level reference value has not been completed (S701: YES), the importance level calculation processing unit 105 proceeds to step S702. When the calculation of the importance reference value of all execution paths is completed (S701: NO), the importance calculation processing unit 105 ends the importance reference value calculation process (S304) of the execution path.
次に、ステップS702において、重要度計算処理部105は、実行経路を選択する。次に、ステップS703において、ステップS702で選択した実行経路の起点メソッドから終点メソッドに至るまでに通過する各メソッド単体の重要度基準値(メソッド単体の特性値から算出した値)の総和を求める。例えば、図6の例に示すように、重要度基準がメソッドの実行回数である場合、各メソッドの実行回数は当該メソッド単体の重要度基準値であり、重要度計算処理部105は、実行経路を構成するメソッドのそれぞれの実行回数の総和をその実行経路の重要度基準値として算出する。
Next, in step S702, the importance calculation processing unit 105 selects an execution path. Next, in step S703, the sum of importance reference values (values calculated from the characteristic values of the single method) of each method passing from the start method to the end method of the execution path selected in step S702 is obtained. For example, as shown in the example of FIG. 6, when the importance criterion is the number of executions of a method, the number of executions of each method is the importance criterion value of the method itself, and the importance calculation processing unit 105 The total number of execution times of each of the methods constituting the is calculated as the importance reference value of the execution path.
重要度計算処理部105は、算出した実行経路の重要度基準値(新たな重要度基準値)により、コールツリー情報125(図6に示すコールツリー)におけるノード(メソッド)の重要度基準値を更新する。本実施形態において、重要度計算処理部105は、各実行経路における終点のメソッドの重要度基準値を、算出した実行経路の重要度基準値の値に更新するようになっている。このように、終点メソッドのトレース情報取得レベル(を決める重要度基準値)は、実行経路に含まれる他のメソッドの重要度に基づいて決定される。重要度計算処理部105は、その決定されたトレース情報取得レベルを、プロファイル情報111のトレース情報取得レベル1309に格納する。
The importance level calculation processing unit 105 calculates the importance level reference value of the node (method) in the call tree information 125 (call tree shown in FIG. 6) based on the calculated importance level reference value (new importance level reference value) of the execution path. Update. In the present embodiment, the importance level calculation processing unit 105 updates the importance level reference value of the end point method in each execution path to the calculated value of the importance level reference value of the execution path. In this way, the trace information acquisition level (determining importance reference value) of the end point method is determined based on the importance of other methods included in the execution path. The importance calculation processing unit 105 stores the determined trace information acquisition level in the trace information acquisition level 1309 of the profile information 111.
図6の例において、例えば、methodA4503からmethodB4504の実行経路の重要度基準値は、methodB4504に与えられる。methodA4503からmethodC4506の実行経路の重要度基準値は、methodC4506に与えられる。起点メソッドであるmethodA4503からなる実行経路の重要度基準値は、methodA4503の重要度基準値と同一である。
In the example of FIG. 6, for example, the importance standard value of the execution path from methodA4503 to methodB4504 is given to methodB4504. The importance reference value of the execution path from methodA4503 to methodC4506 is given to methodC4506. The importance reference value of the execution path composed of method A4503 as the starting method is the same as the importance reference value of method A4503.
上記例は、実行経路の重要度基準値を、そこに含まれるメソッド単体の重要度基準値の単純和により求めるが、実行経路の重要度基準値の算出は、メソッド単体の重要度基準値の平均、加重和(各メソッドの重要度基準値に規定の重み付けをした上での和)、その他の統計的指標を用いてもよい。加重和(線形和)の計算においては、例えば、実行経路の終点メソッドから起点メソッドに向かって小さくなるように重み係数を設定する。
In the above example, the importance reference value of the execution path is obtained by the simple sum of the importance reference values of the individual methods included in it, but the importance reference value of the execution path is calculated by the importance reference value of the method alone. An average, a weighted sum (a sum obtained by applying a prescribed weight to the importance standard value of each method), or other statistical indicators may be used. In the calculation of the weighted sum (linear sum), for example, the weighting factor is set so as to decrease from the end point method of the execution path toward the start point method.
また、本実施形態は、実行経路の重要度基準値の計算に用いる要素として、メソッドに含まれる分岐命令の数、メソッドの実行回数、メソッドの実行時間、メソッドの実行頻度、ソースコードの長さ、バイナリファイル内の総命令数から選択した一つ若しくは複数の要素を使用することができる。
In the present embodiment, the elements used for calculating the importance reference value of the execution path are the number of branch instructions included in the method, the number of execution times of the method, the execution time of the method, the execution frequency of the method, and the length of the source code. One or more elements selected from the total number of instructions in the binary file can be used.
重要度は、メソッドの実行が稀であるほど、また、メソッドが複雑であるほど高くなる。例えば、複雑度(例えば分岐命令数)、実行時間、コードの長さ又は命令数の増加により重要度が増加し、実行回数の増加により重要度は低下する。
The importance increases as the method execution is rarer and the method is more complex. For example, the importance increases with an increase in complexity (for example, the number of branch instructions), execution time, code length, or number of instructions, and the importance decreases with an increase in the number of executions.
あるいは、メソッドの引数、メソッドの内部変数の値又はメソッドの内部変数の型において、予め設定された制約条件に一致しない引数又は変数の数を用いてもよい。この他、本実施形態は、実行経路の重要度の決定にユーザ関連情報を使用してもよい。ユーザ関連情報としては、職位情報、職務情報、部署情報などのシステムを利用するユーザに関連する情報を利用することができる。
Alternatively, the number of arguments or variables that do not match a preset constraint may be used in the method argument, method internal variable value, or method internal variable type. In addition, this embodiment may use user related information for determining the importance of the execution path. As the user-related information, information related to the user who uses the system such as job position information, job information, and department information can be used.
重要度計算処理部105は、上記メソッドの特性情報における任意の要素の加重和を、実行経路の重要度として算出してもよい。例えば、実行経路の終点メソッドから起点メソッドに向かうにつれて、小さくなるように重み係数を設定する。他にも、メソッドの特性情報における任意の要素をベクトルとし、そのベクトルを機械学習によって作成した識別器の入力としたときの出力値を、実行経路の重要度として使用してもよい。
The importance calculation processing unit 105 may calculate a weighted sum of arbitrary elements in the method characteristic information as the importance of the execution path. For example, the weighting coefficient is set so as to decrease from the end point method of the execution path toward the start point method. In addition, an arbitrary value in the method characteristic information may be a vector, and an output value when the vector is input to a discriminator created by machine learning may be used as the importance of the execution path.
次に、トレース情報取得レベル判定処理(図3のS305)を、図10のフローチャートを参照して説明する。トレース情報取得レベル判定処理(S305)は、実行経路の重要度計算処理(S303)で計算された実行経路の重要度基準値から、実行経路に含まれるメソッドのトレース情報取得レベルを求める処理である。
Next, the trace information acquisition level determination process (S305 in FIG. 3) will be described with reference to the flowchart in FIG. The trace information acquisition level determination process (S305) is a process for obtaining the trace information acquisition level of the method included in the execution path from the importance reference value of the execution path calculated in the execution path importance calculation process (S303). .
本構成においては、実行経路の終点メソッドのトレース情報が、その実行経路の重要度基準値(トレース取得レベル決定における当該メソッドの重要度基準値)から決定される。メソッドに挿入されたプローブは、設定されているトレース情報取得レベルが示す種類のトレース情報を、そのメソッドの実行において取得する。
In this configuration, the trace information of the end method of the execution path is determined from the importance reference value of the execution path (the importance reference value of the method in determining the trace acquisition level). The probe inserted into the method acquires the type of trace information indicated by the set trace information acquisition level when executing the method.
まず、ステップS801において、重要度計算処理部105は、トレース情報取得レベル未判定の実行経路があるかを判定する。未判定の実行経路がある場合(S801:YES)、重要度計算処理部105は、ステップS802に進む。全ての実行経路においてトレース情報取得レベルの判定が完了した場合(S801:NO)、重要度計算処理部105は、トレース情報取得レベル判定処理(S305)を終了する。
First, in step S801, the importance calculation processing unit 105 determines whether there is an execution path whose trace information acquisition level has not been determined. If there is an undetermined execution path (S801: YES), the importance calculation processing unit 105 proceeds to step S802. When the determination of the trace information acquisition level is completed in all execution paths (S801: NO), the importance calculation processing unit 105 ends the trace information acquisition level determination process (S305).
次に、ステップS802において、重要度計算処理部105は、トレース情報取得レベルが未判定の実行経路を選択する。次に、ステップS803において、トレース情報取得レベル・重要度基準値対応表121を参照して、実行経路の重要度基準値からトレース実行時に取得する情報の種類(トレース情報取得レベル)を決定する。
Next, in step S802, the importance calculation processing unit 105 selects an execution path whose trace information acquisition level is not determined. Next, in step S803, referring to the trace information acquisition level / importance level reference value correspondence table 121, the type of information (trace information acquisition level) acquired at the time of trace execution is determined from the importance level reference value of the execution path.
図5に示すトレース情報取得レベル・重要度基準値対応表121において、重要度基準値の範囲2001の閾値は、統計量以外の値でもよく、機械学習によって得た値やユーザ指定の値でもよい。重要度基準値の範囲2001の閾値は、プロファイル情報111の更新(図2のS106)後に更新される(図2のS107)。図5におけるトレース情報取得レベル2002のレベルの数及び取得する情報の種類2003は、ユーザが変更可能である。
In the trace information acquisition level / importance level reference value correspondence table 121 shown in FIG. 5, the threshold value of the importance level range 2001 may be a value other than a statistic, or may be a value obtained by machine learning or a user-specified value. . The threshold value of the importance level range 2001 is updated after the profile information 111 is updated (S106 in FIG. 2) (S107 in FIG. 2). The number of levels of the trace information acquisition level 2002 and the type of information 2003 to be acquired in FIG. 5 can be changed by the user.
次に、ステップS804において、重要度計算処理部105は、ステップS802で選択した実行経路内における終点メソッドのトレース情報取得レベルの値を、ステップS803で決定したトレース情報取得レベルの値に更新する。重要度計算処理部105は、ステップS804実行後、ステップS801に戻る。以上の処理により、メソッドにおいて取得されるトレース情報の種類が更新される。
Next, in step S804, the importance calculation processing unit 105 updates the value of the trace information acquisition level of the end point method in the execution path selected in step S802 to the value of the trace information acquisition level determined in step S803. The importance calculation processing unit 105 returns to step S801 after executing step S804. Through the above processing, the type of trace information acquired in the method is updated.
好ましい例において、ステップS804において、トレース情報取得レベルの値が、更新前と更新後で異なる場合、重要度計算処理部105は、トレース取得情報がより簡易であるレベル値を優先する。例えば、図5に示す例において、「簡易」、「標準」、「詳細」の順で、取得するトレース情報が簡易となる。
In a preferred example, when the value of the trace information acquisition level is different from before and after the update in step S804, the importance calculation processing unit 105 prioritizes the level value with which the trace acquisition information is simpler. For example, in the example illustrated in FIG. 5, the trace information to be acquired is simplified in the order of “simple”, “standard”, and “detail”.
一つのメソッドが複数のメソッドから呼び出される場合、そのメソッドは異なる複数の実行経路の終点メソッドとなる。重要度計算処理部105は、予め設定された規則に従って、上記複数の実行経路の重要度基準値の値から、その終点メソッドに適用する重要度基準値を選択する。
When a single method is called from multiple methods, that method becomes the end point method of multiple different execution paths. The importance calculation processing unit 105 selects an importance reference value to be applied to the end point method from the importance reference values of the plurality of execution paths according to a preset rule.
好ましい例において、重要度計算処理部105は、重要度基準値の最も低い値を選択する。つまり、最も簡易な(取得トレース情報の種類が最も少ない)レース情報取得レベルを選択する。これにより、必要なトレース情報を取得しつつ、取得するトレース情報のデータ量を低減することができる。
In a preferred example, the importance calculation processing unit 105 selects a value having the lowest importance reference value. That is, the race information acquisition level that is the simplest (the smallest type of acquired trace information) is selected. This makes it possible to reduce the amount of trace information to be acquired while acquiring necessary trace information.
(プログラム拡張処理(S104))
次に、図2のフローチャートに示すプログラム拡張処理(S103)を、図11のフローチャートを参照して説明する。プログラム拡張処理部104は、この処理において、トレース対象のプログラム109に、トレース情報を取得するためのプローブを埋め込む。 (Program extension processing (S104))
Next, the program extension process (S103) shown in the flowchart of FIG. 2 will be described with reference to the flowchart of FIG. In this process, the programextension processing unit 104 embeds a probe for acquiring trace information in the trace target program 109.
次に、図2のフローチャートに示すプログラム拡張処理(S103)を、図11のフローチャートを参照して説明する。プログラム拡張処理部104は、この処理において、トレース対象のプログラム109に、トレース情報を取得するためのプローブを埋め込む。 (Program extension processing (S104))
Next, the program extension process (S103) shown in the flowchart of FIG. 2 will be described with reference to the flowchart of FIG. In this process, the program
図11に示すように、最初に、プログラム拡張処理部104は、ステップS901において、未調査のトレース対象のクラスがあるか否かを判定する。未調査のクラスがある場合(S901:YES)、プログラム拡張処理部104はステップS902に進む。全クラスの調査が完了している場合(S901:NO)、プログラム拡張処理部104はステップS905に進む。
As shown in FIG. 11, first, in step S901, the program extension processing unit 104 determines whether there is an unexamined trace target class. When there is an uninvestigated class (S901: YES), the program extension processing unit 104 proceeds to step S902. If all classes have been checked (S901: NO), the program extension processing unit 104 proceeds to step S905.
次に、ステップS902において、プログラム拡張処理部104は、メモリ103上のプログラム109からトレース対象のクラスを読み込む。次に、ステップS903において、ステップS902で選択したクラスに、トレース情報を取得するためのプローブが挿入されていないメソッドがあるか否かを判定する。
Next, in step S902, the program extension processing unit 104 reads the trace target class from the program 109 on the memory 103. Next, in step S903, it is determined whether or not there is a method in which a probe for acquiring trace information is not inserted in the class selected in step S902.
挿入されていないメソッドが存在する場合(S903:YES)、プログラム拡張処理部104は、プローブ挿入ステップS904に進む。クラス内の全メソッドの挿入処理が完了している場合(S903:NO)、プログラム拡張処理部104は、ステップS901に戻る。
If there is a method that has not been inserted (S903: YES), the program extension processing unit 104 proceeds to probe insertion step S904. When the insertion processing for all the methods in the class has been completed (S903: NO), the program extension processing unit 104 returns to step S901.
次に、ステップS904において、プログラム拡張処理部104は、重要度計算処理(図2のS102)で求めたトレース情報取得レベルに基づいたプローブを、ステップS902で読み込んだクラスに属するメソッドへ挿入する。プローブ挿入(S902)後、プログラム拡張処理部104は、ステップS903に戻る。
Next, in step S904, the program extension processing unit 104 inserts a probe based on the trace information acquisition level obtained in the importance calculation process (S102 in FIG. 2) into the method belonging to the class read in step S902. After the probe insertion (S902), the program extension processing unit 104 returns to step S903.
次に、プログラム拡張処理部104は、ステップS905において、ステップS904でプローブを挿入したプログラムを、拡張プログラム110としてメモリ103に出力する。最後に、プログラム拡張処理部104は、ステップS906において、拡張プログラム110におけるプローブ挿入済みのクラスをロードする。ステップS906終了後、プログラム拡張処理(S103)を終了する。
Next, in step S905, the program expansion processing unit 104 outputs the program in which the probe is inserted in step S904 to the memory 103 as the expansion program 110. Finally, in step S906, the program extension processing unit 104 loads the class into which the probe has been inserted in the extension program 110. After step S906 ends, the program expansion process (S103) ends.
図12を参照して、プローブ挿入処理(図11のS904)を説明する。プローブ挿入処理(S904)は、重要度計算処理(図2のS102)で求めたトレース情報取得レベルに基づいたプローブを挿入する。まず、ステップS1001において、プログラム拡張処理部104は、プローブを挿入するメソッドを読み込む。
The probe insertion process (S904 in FIG. 11) will be described with reference to FIG. The probe insertion process (S904) inserts a probe based on the trace information acquisition level obtained in the importance calculation process (S102 in FIG. 2). First, in step S1001, the program extension processing unit 104 reads a method for inserting a probe.
次に、ステップS1003において、プログラム拡張処理部104は、ステップS1001で読み込んだメソッドのバイトコード格納部におけるメソッドの先頭行に対応する箇所に、メソッド開始情報取得プローブを挿入する。次に、プログラム拡張処理部104は、ステップS1004において、重要度計算処理(S102)で求めたトレース情報取得レベルが「標準」もしくは「詳細」(以後、通常状態とする。)であるかを判断する。
Next, in step S1003, the program extension processing unit 104 inserts a method start information acquisition probe at a location corresponding to the first line of the method in the bytecode storage unit of the method read in step S1001. Next, in step S1004, the program extension processing unit 104 determines whether the trace information acquisition level obtained in the importance level calculation process (S102) is “standard” or “detailed” (hereinafter referred to as a normal state). To do.
トレース情報取得レベルが通常状態である場合(S1004:YES)、プログラム拡張処理部104は、ステップS1005に進む。通常状態でない場合(S1004:NO)、プログラム拡張処理部104は、ステップS1014に進む。次に、ステップS1005において、プログラム拡張処理部104は、ステップS1001で読み込んだメソッドのバイトコード格納部に、引数情報取得プローブを挿入する。プローブの挿入箇所は、例えば、メソッド開始情報取得プローブの直後である。
When the trace information acquisition level is in the normal state (S1004: YES), the program extension processing unit 104 proceeds to step S1005. If not in the normal state (S1004: NO), the program extension processing unit 104 proceeds to step S1014. In step S1005, the program extension processing unit 104 inserts an argument information acquisition probe into the bytecode storage unit of the method read in step S1001. The probe insertion point is, for example, immediately after the method start information acquisition probe.
次に、プログラム拡張処理部104は、ステップS1014において、ステップS1001で読み込んだメソッドのバイトコードを1命令読み込む。次に、ステップS1006において、プログラム拡張処理部104は、ステップS1014で読み込んだバイトコードで内部変数にアクセスするか否かを判定する。ここで、ステップS1006での内部変数へのアクセスは、内部変数の読み込み及び内部変数の書き換えの双方の処理を指す。
Next, in step S1014, the program extension processing unit 104 reads one instruction of the byte code of the method read in step S1001. Next, in step S1006, the program extension processing unit 104 determines whether or not to access the internal variable with the byte code read in step S1014. Here, the access to the internal variable in step S1006 refers to both processing of reading the internal variable and rewriting the internal variable.
内部変数にアクセスする場合(S1006:YES)、プログラム拡張処理部104は、ステップS1007に進む。アクセスしない場合(S1006:NO)、プログラム拡張処理部104は、ステップS1009に進む。
When accessing the internal variable (S1006: YES), the program extension processing unit 104 proceeds to step S1007. If not accessed (S1006: NO), the program extension processing unit 104 proceeds to step S1009.
次に、ステップS1007において、プログラム拡張処理部104は、重要度計算処理(S102)で求めたトレース情報取得レベルが通常レベルであるか否かを判定する。トレース情報取得レベルが通常状態である場合(S1007:YES)、プログラム拡張処理部104は、ステップS1008に進む。通常状態でない場合(S1007:NO)、プログラム拡張処理部104は、ステップS1009に進む。次に、ステップS1008において、プログラム拡張処理部104は、ステップS1001で読み込んだメソッドのバイトコードに内部変数情報取得プローブを挿入する。
Next, in step S1007, the program extension processing unit 104 determines whether or not the trace information acquisition level obtained in the importance calculation processing (S102) is a normal level. When the trace information acquisition level is the normal state (S1007: YES), the program extension processing unit 104 proceeds to step S1008. If it is not the normal state (S1007: NO), the program extension processing unit 104 proceeds to step S1009. Next, in step S1008, the program extension processing unit 104 inserts an internal variable information acquisition probe into the bytecode of the method read in step S1001.
次に、ステップS1009において、プログラム拡張処理部104は、ステップS1014で読み込んだバイトコードがreturn命令か否かを判定する。return命令の場合(S1009:YES)、ステップS1010に進む。return命令以外の場合(S1009:NO)、ステップS1014に戻る。
Next, in step S1009, the program extension processing unit 104 determines whether or not the byte code read in step S1014 is a return instruction. In the case of a return instruction (S1009: YES), the process proceeds to step S1010. If the instruction is not a return instruction (S1009: NO), the process returns to step S1014.
次に、ステップS1010において、プログラム拡張処理部104は、重要度計算処理(S102)で求めたトレース情報取得レベルが通常状態であるかを判定する。トレース情報取得レベルが通常状態である場合(S1010:YES)、プログラム拡張処理部104は、ステップS1011に進む。通常状態でない場合(S1010:NO)、プログラム拡張処理部104は、ステップS1012に進む。
Next, in step S1010, the program extension processing unit 104 determines whether or not the trace information acquisition level obtained in the importance calculation processing (S102) is in a normal state. When the trace information acquisition level is the normal state (S1010: YES), the program extension processing unit 104 proceeds to step S1011. If it is not the normal state (S1010: NO), the program extension processing unit 104 proceeds to step S1012.
次に、ステップS1011において、プログラム拡張処理部104は、ステップS1001で読み込んだメソッドのバイトコードに返り値情報取得プローブを挿入する。ステップS1012において、プログラム拡張処理部104は、ステップS1001で読み込んだメソッドのバイトコードにメソッド終了情報取得プローブを挿入する。
Next, in step S1011, the program extension processing unit 104 inserts a return value information acquisition probe into the bytecode of the method read in step S1001. In step S1012, the program extension processing unit 104 inserts a method end information acquisition probe into the bytecode of the method read in step S1001.
ステップS1013において、プログラム拡張処理部104は、メソッドの最後か否かを判定する。メソッドの最後である場合(S1013:YES)、プログラム拡張処理部104は、プローブ挿入処理204を終了する。最後でない場合(S1013:NO)、プログラム拡張処理部104は、ステップS1014に戻る。
In step S1013, the program extension processing unit 104 determines whether it is the end of the method. When it is the end of the method (S1013: YES), the program extension processing unit 104 ends the probe insertion process 204. If it is not the last (S1013: NO), the program extension processing unit 104 returns to step S1014.
メソッドが複数の実行経路に属する場合、上記処理により挿入されたプローブは、メソッドが属する複数の実行経路の全てにおいて、同じ様にトレース情報を取得する。これと異なり、プローブは、呼び出し元のメソッド及び呼び出し先のメソッドから実行経路を特定し、実行経路毎に決定されたトレース情報取得レベルに従って、トレース情報を取得してもよい。プローブは、同一のメソッドにおいて、重要度が高い実行経路においては詳細なトレース情報を取得し、重要度が低い実行経路においては簡略化されたトレース情報を取得する。
When a method belongs to a plurality of execution paths, the probe inserted by the above process acquires trace information in the same manner in all of the plurality of execution paths to which the method belongs. Unlike this, the probe may acquire the trace information according to the trace information acquisition level determined for each execution path by specifying the execution path from the call source method and the call destination method. In the same method, the probe acquires detailed trace information in an execution path with high importance, and acquires simplified trace information in an execution path with low importance.
(プロファイル更新(S106)・対応表更新処理(S107))
次に、図2のフローチャートにおけるプロファイル更新処理(S106)及びトレース情報取得レベル・重要度基準値対応表更新処理(S107)を説明する。プロファイル更新処理部118は、トレース対象プログラムの解析結果及び取得トレース情報124から、実行経路の重要度基準値を計算するためのプロファイル情報111(図4を参照)を作成する。また、新たな取得トレース情報124の値により、プロファイル情報111を更新する。 (Profile update (S106) / Correspondence table update process (S107))
Next, the profile update process (S106) and the trace information acquisition level / importance reference value correspondence table update process (S107) in the flowchart of FIG. 2 will be described. The profileupdate processing unit 118 creates profile information 111 (see FIG. 4) for calculating the importance reference value of the execution path from the analysis result of the trace target program and the acquired trace information 124. Further, the profile information 111 is updated with the value of the new acquired trace information 124.
次に、図2のフローチャートにおけるプロファイル更新処理(S106)及びトレース情報取得レベル・重要度基準値対応表更新処理(S107)を説明する。プロファイル更新処理部118は、トレース対象プログラムの解析結果及び取得トレース情報124から、実行経路の重要度基準値を計算するためのプロファイル情報111(図4を参照)を作成する。また、新たな取得トレース情報124の値により、プロファイル情報111を更新する。 (Profile update (S106) / Correspondence table update process (S107))
Next, the profile update process (S106) and the trace information acquisition level / importance reference value correspondence table update process (S107) in the flowchart of FIG. 2 will be described. The profile
図5に示すように、トレース情報取得レベル・重要度基準値対応表121は、重要度基準値の統計データを使用しており、プロファイル更新処理部118は、新たな取得トレース情報124の値により、トレース情報取得レベル・重要度基準値対応表121を更新する。更新されたプロファイル情報111を使用した重要度計算処理(図2のS102)により、メソッドのトレース情報取得レベルが更新される。
As shown in FIG. 5, the trace information acquisition level / importance level reference value correspondence table 121 uses statistical data of the importance level reference value, and the profile update processing unit 118 uses the new acquired trace information 124 value. The trace information acquisition level / importance level reference value correspondence table 121 is updated. The trace information acquisition level of the method is updated by the importance calculation process (S102 in FIG. 2) using the updated profile information 111.
(トレース情報出力処理(S109))
次に、図13のフローチャートを参照して、図2におけるトレース情報出力処理(S109)を説明する。この処理において、トレース情報出力処理部107は、プローブが取得したトレース情報124を出力トレース情報112に変換し、メモリ103上に出力する。 (Trace information output process (S109))
Next, the trace information output process (S109) in FIG. 2 will be described with reference to the flowchart in FIG. In this processing, the trace informationoutput processing unit 107 converts the trace information 124 acquired by the probe into output trace information 112 and outputs it to the memory 103.
次に、図13のフローチャートを参照して、図2におけるトレース情報出力処理(S109)を説明する。この処理において、トレース情報出力処理部107は、プローブが取得したトレース情報124を出力トレース情報112に変換し、メモリ103上に出力する。 (Trace information output process (S109))
Next, the trace information output process (S109) in FIG. 2 will be described with reference to the flowchart in FIG. In this processing, the trace information
図13に示すように、まず、ステップS1101において、トレース情報出力処理部107は、トレース情報取得ステップ(図23のS1403を参照)で取得したトレース情報124を取り込む。次に、トレース情報変換ステップ(S1102)において、ステップS1101で取得したトレース情報を出力トレース情報形式に変換する。次に、ステップS1103において、トレースデータ変換ステップ(S1102)で出力トレース情報形式に変換した出力トレース情報112をメモリ103もしくは外部記憶113に保存する。
As shown in FIG. 13, first, in step S1101, the trace information output processing unit 107 takes in the trace information 124 acquired in the trace information acquisition step (see S1403 in FIG. 23). Next, in the trace information conversion step (S1102), the trace information acquired in step S1101 is converted into an output trace information format. In step S1103, the output trace information 112 converted into the output trace information format in the trace data conversion step (S1102) is stored in the memory 103 or the external storage 113.
トレース情報変換ステップ(S1102)の動作を説明する。トレース情報変換処理1104は、取得トレース情報124を出力トレース情報112に変換する。最初に、取得トレース情報124から1レコード読み込む。次に、読み込んだ情報がCall情報(メソッドを呼び出したことを表す情報)である場合、出力トレース情報112のCall情報形式に変換する。同様に、読み込んだ情報がReturn情報(メソッドが実行終了したことを表す情報)である場合、出力トレース情報112のReturn情報形式に変換する。この処理を全トレース情報に対して、繰り返し行う。
The operation of the trace information conversion step (S1102) will be described. The trace information conversion process 1104 converts the acquired trace information 124 into output trace information 112. First, one record is read from the acquired trace information 124. Next, when the read information is Call information (information indicating that the method has been called), the information is converted into the Call information format of the output trace information 112. Similarly, when the read information is Return information (information indicating that the method has been executed), the information is converted into the Return information format of the output trace information 112. This process is repeated for all trace information.
図14は、トレース情報の出力結果である出力トレース情報112の構成例を示している。本例において、出力トレース情報112は、トレース情報管理テーブル1801、トレース情報ログ1802、メソッドIDテーブル1803及び例外IDテーブル1804を有する。詳細は、具体例を参照して後述する。
FIG. 14 shows a configuration example of the output trace information 112, which is the output result of the trace information. In this example, the output trace information 112 includes a trace information management table 1801, a trace information log 1802, a method ID table 1803, and an exception ID table 1804. Details will be described later with reference to specific examples.
(画面表示処理(S111))
画面表示処理部115は、プロファイル情報111および出力トレース情報112を表示する。図15は、プロファイル情報111の表示例を示している。図15の例は、プロファイル情報をコールツリーとして表示している。このコールツリーは、図6に示すコールツリーと同様であり、詳細な説明を省略する。各ノードの詳細情報の例は図8と同様である。図16は、トレース情報112の表示1603の例を示す。トレース情報112はメソッドの実行順に表示すべきデータであるので、コールトレース(実行履歴)として表示する。 (Screen display process (S111))
The screendisplay processing unit 115 displays the profile information 111 and the output trace information 112. FIG. 15 shows a display example of the profile information 111. The example of FIG. 15 displays profile information as a call tree. This call tree is the same as the call tree shown in FIG. 6, and detailed description thereof is omitted. An example of detailed information of each node is the same as in FIG. FIG. 16 shows an example of the display 1603 of the trace information 112. Since the trace information 112 is data to be displayed in the order of method execution, it is displayed as a call trace (execution history).
画面表示処理部115は、プロファイル情報111および出力トレース情報112を表示する。図15は、プロファイル情報111の表示例を示している。図15の例は、プロファイル情報をコールツリーとして表示している。このコールツリーは、図6に示すコールツリーと同様であり、詳細な説明を省略する。各ノードの詳細情報の例は図8と同様である。図16は、トレース情報112の表示1603の例を示す。トレース情報112はメソッドの実行順に表示すべきデータであるので、コールトレース(実行履歴)として表示する。 (Screen display process (S111))
The screen
(トレース情報取得についてのユーザ指定)
図1を参照して説明したように、ユーザはトレース実行経路指定情報122により、特定の実行経路(の終点メソッド)のトレース取得レベルを指定することができる。又、トレース対象指定情報123により、トレース対象の範囲(クラス、メソッド及びパッケージ(ライブラリ)等)を指定(限定)することができる。図17A及び図17Bは、それぞれ、トレース実行経路指定情報122の一例及びトレース対象指定情報123の一例を示している。これらにより、ユーザの要求より適応したトレース情報の取得及びエラー解析処理を実現することができる。 (User specified for trace information acquisition)
As described with reference to FIG. 1, the user can specify the trace acquisition level of a specific execution path (its end point method) by using the trace executionpath specification information 122. Further, the trace target range (class, method, package (library), etc.) can be specified (limited) by the trace target specifying information 123. 17A and 17B show an example of the trace execution path designation information 122 and an example of the trace target designation information 123, respectively. As a result, it is possible to realize trace information acquisition and error analysis processing adapted to the user's request.
図1を参照して説明したように、ユーザはトレース実行経路指定情報122により、特定の実行経路(の終点メソッド)のトレース取得レベルを指定することができる。又、トレース対象指定情報123により、トレース対象の範囲(クラス、メソッド及びパッケージ(ライブラリ)等)を指定(限定)することができる。図17A及び図17Bは、それぞれ、トレース実行経路指定情報122の一例及びトレース対象指定情報123の一例を示している。これらにより、ユーザの要求より適応したトレース情報の取得及びエラー解析処理を実現することができる。 (User specified for trace information acquisition)
As described with reference to FIG. 1, the user can specify the trace acquisition level of a specific execution path (its end point method) by using the trace execution
ユーザにより作成、入力されたトレース実行経路指定情報122は、トレース対象となる実行経路及び実行経路のトレース情報取得レベルを指定する。図17Aの例において、3つの実行経路及びそれぞれのトレース取得レベルが指定されている。例えば、method_a-method_bの経路が指定され、さらに、そのトレース情報取得レベルとして、「通常」が指定されている。
The trace execution path designation information 122 created and input by the user designates the execution path to be traced and the trace information acquisition level of the execution path. In the example of FIG. 17A, three execution paths and respective trace acquisition levels are specified. For example, the route of method_a-method_b is designated, and “normal” is designated as the trace information acquisition level.
トレーサは、ユーザにより設定されたトレース対象となる実行経路において、ユーザにより設定されたトレース情報取得レベルが示す種類のトレース情報を取得する。具体的には、JavaVM114(トレーサ)は、プログラム読み込み処理(図2のS101)の前に、トレース実行経路指定ファイル122を読込む。トレース実行経路指定情報122が存在しなければ、トレーサは、ユーザ指定による実行経路(の終点メソッド)のトレース取得情報レベルの設定を行わない。
The tracer acquires the type of trace information indicated by the trace information acquisition level set by the user in the execution path to be traced set by the user. Specifically, the Java VM 114 (tracer) reads the trace execution path designation file 122 before the program reading process (S101 in FIG. 2). If the trace execution path designation information 122 does not exist, the tracer does not set the trace acquisition information level of the execution path (end point method) specified by the user.
トレース実行経路指定情報122が存在している場合、重要度計算処理部105は、実行経路解析(図4)におけるステップS507と「実行経路解析処理終了」との間において、トレース実行経路指定情報122を参照し、トレース実行経路指定情報122で指定されている実行経路を登録する。重要度計算処理部105は、既に登録されている実行経路において、トレース実行経路指定情報122で指定されている実行経路には、それがユーザ指定された実行経路であることを示す情報を付与してもよい。
If the trace execution path designation information 122 exists, the importance calculation processing unit 105 determines that the trace execution path designation information 122 is between step S507 and “end of the execution path analysis process” in the execution path analysis (FIG. 4). The execution path designated by the trace execution path designation information 122 is registered. The importance calculation processing unit 105 assigns information indicating that the execution path designated by the trace execution path designation information 122 to the execution path designated by the user is an execution path designated by the user. May be.
さらに、重要度計算処理部105は、トレース取得レベル判定処理(図10)におけるステップS802とステップS803との間において、ステップS802で選択した未判定の実行経路が、読み込んだトレース実行経路指定ファイル122に記載されている実行経路であるか否かを、その実行経路の登録情報を参照して判定する。
Furthermore, the importance calculation processing unit 105 reads the trace execution path designation file 122 read by the undetermined execution path selected in step S802 between step S802 and step S803 in the trace acquisition level determination process (FIG. 10). Whether or not the execution path is described in the above is determined with reference to the registration information of the execution path.
ユーザ指定された実行経路である場合、重要度計算処理部105は、トレース実行経路指定情報122を参照して、その実行経路のトレース情報取得レベルを対応する値に設定し、ステップS801に戻る。ユーザ指定された実行経路でない場合、重要度計算処理部105は、ステップS803に進む。以上の処理によって、指定された実行経路のトレース情報取得レベルを指定された値に設定することができる。
When the execution path is designated by the user, the importance calculation processing unit 105 refers to the trace execution path designation information 122, sets the trace information acquisition level of the execution path to a corresponding value, and returns to step S801. If the execution path is not designated by the user, the importance calculation processing unit 105 proceeds to step S803. Through the above processing, the trace information acquisition level of the designated execution path can be set to the designated value.
次に、トレース対象指定情報123について説明する。ユーザは、トレース対象指定情報123によってトレース対象を指定し、トレース情報の取得対象範囲を限定することができる。具体的には、JavaVM114(トレーサ)は、プログラム読み込み処理(図2のS101)の前に、トレース対象指定情報123を読込む。トレース対象指定情報123が存しなければ、トレース取得範囲の限定を行わない。
Next, the trace target specifying information 123 will be described. The user can specify the trace target by the trace target specifying information 123 and limit the acquisition target range of the trace information. Specifically, the Java VM 114 (tracer) reads the trace target designation information 123 before the program reading process (S101 in FIG. 2). If the trace target designation information 123 does not exist, the trace acquisition range is not limited.
プログラム拡張処理部104は、プローブ挿入処理(図12)におけるステップS1001とステップS1003との間において、処理ステップS1001で読み込んだメソッドが、読み込んだトレース対象指定情報123に記載されているパッケージ、クラス又はメソッドと一致しているか否かを判定する。一致している場合、プログラム拡張処理部104は、ステップS1003に進む。一致していない場合、プローブ挿入処理を終了する。以上の処理によって、トレース情報の取得対象範囲の限定が可能となる。
The program extension processing unit 104 determines whether the method read in the processing step S1001 between the step S1001 and the step S1003 in the probe insertion process (FIG. 12) is the package, class, or class described in the read trace target designation information 123. Determine whether it matches the method. If they match, the program extension processing unit 104 proceeds to step S1003. If they do not match, the probe insertion process is terminated. With the above processing, it is possible to limit the acquisition target range of the trace information.
(プログラム例の処理例)
以下において、図18に示すプログラムの例を用いて、上記各処理を説明する。図19A~図19Iは、本プログラム例の実行経路の重要度の決定において用いるプロファイル情報111(図4も参照)の例を示している。重要度計算処理部105は、図19A~図19Iのプロファイル情報111を参照して、メソッドのトレース情報取得レベルを決定する。上述のように、プロファイル情報更新処理部118が、図19A~図19Iのプロファイル情報111の作成及び更新を行う。 (Example program processing)
In the following, each of the above processes will be described using the example of the program shown in FIG. 19A to 19I show examples of profile information 111 (see also FIG. 4) used in determining the importance of the execution path of this program example. The importancecalculation processing unit 105 refers to the profile information 111 of FIGS. 19A to 19I to determine the trace information acquisition level of the method. As described above, the profile information update processing unit 118 creates and updates the profile information 111 of FIGS. 19A to 19I.
以下において、図18に示すプログラムの例を用いて、上記各処理を説明する。図19A~図19Iは、本プログラム例の実行経路の重要度の決定において用いるプロファイル情報111(図4も参照)の例を示している。重要度計算処理部105は、図19A~図19Iのプロファイル情報111を参照して、メソッドのトレース情報取得レベルを決定する。上述のように、プロファイル情報更新処理部118が、図19A~図19Iのプロファイル情報111の作成及び更新を行う。 (Example program processing)
In the following, each of the above processes will be described using the example of the program shown in FIG. 19A to 19I show examples of profile information 111 (see also FIG. 4) used in determining the importance of the execution path of this program example. The importance
図18に示すプログラム例は、class SampleClassA1401、class SampleClassB1402、class SampleClassC1403、class ExceptionHandler1404の各プログラム(モジュール)を含む。
The program example shown in FIG. 18 includes each program (module) of class SampleClassA1401, class SampleClassB1402, class SampleClassC1403, and class ExceptionHandler 1404.
図18のプログラム109において、通常、method_a()、method_b()、method_cの順番で実行される。ただし、図18のプログラムにおいて、例外として、method_a()、method_b()、throwException()の順番に実行されることがある。各クラスの具体的内容は、図18に示す通りであり、ここでの詳細説明を省略する。
18 is normally executed in the order of method_a (), method_b (), and method_c in the program 109 of FIG. However, in the program of FIG. 18, as an exception, method_a (), method_b (), and throwException () may be executed in this order. The specific contents of each class are as shown in FIG. 18, and a detailed description thereof is omitted here.
図19A~図19Iは、それぞれ、図18のプログラム109の実行において得られる、メソッドの引数・内部変数情報1301、メソッドの呼び出し経路情報1302、メソッドの実行回数情報1303、メソッドの実行時間情報1304、メソッドの分岐命令数情報1306、メソッドの呼び出し関係情報1307、メソッドの行数情報1305、メソッドの総命令数情報1308、トレース情報取得レベル1309の具体例を示す。各情報の内容は各図に示す通りであり、以下において、いくつかの情報について補足説明を行う。
19A to 19I show method argument / internal variable information 1301, method call path information 1302, method execution count information 1303, method execution time information 1304, obtained in the execution of the program 109 in FIG. Specific examples of method branch instruction number information 1306, method call relation information 1307, method line number information 1305, method total instruction number information 1308, and trace information acquisition level 1309 are shown. The contents of each information are as shown in each figure, and some information will be supplementarily described below.
図19Bに示す呼び出し経路情報1302は、トレース対象プログラム109の実行経路の情報を含んでいる。図19Bにおける1502で指示される記述は、method_a()、method_b(int)、method_c(int)の順に実行される。図19Bにおける参照符号1508の記述は、その実行経路の重要度基準値が115であることを表している。
The call route information 1302 shown in FIG. 19B includes information on the execution route of the trace target program 109. The description indicated by 1502 in FIG. 19B is executed in the order of method_a (), method_b (int), and method_c (int). The description of reference numeral 1508 in FIG. 19B indicates that the importance level reference value of the execution path is 115.
図19Dに示すメソッドの実行時間情報1304は、各メソッドの1回の実行にかかる時間を示しているが、各メソッドの総実行時間としてもよい。例えば、一つのメソッドの実行時間は、そのメソッドの複数回の実行のそれぞれの時間の平均値である。
The method execution time information 1304 shown in FIG. 19D indicates the time taken for one execution of each method, but may be the total execution time of each method. For example, the execution time of one method is an average value of the times of a plurality of executions of the method.
図19Fに示すメソッドの呼び出し関係情報1307は、メソッド間の各呼び出し関係と、各呼び出し関係における呼び出し回数を示している。例えば、method_b(int)からmethod_c(int)への呼び出し関係が存在し、その呼び出し回数は39回である。
The method call relationship information 1307 shown in FIG. 19F indicates each call relationship between methods and the number of calls in each call relationship. For example, there is a call relationship from method_b (int) to method_c (int), and the number of calls is 39 times.
重要度計算処理部105は、呼び出し関係構築処理(図3のS302)において、図19Fに示すメソッド呼び出し関係情報1307から、呼び出し関係(コールツリー)を構築する。図20は、図19Fのメソッド呼び出し関係情報1307から生成したコールツリーの例を示している。重要度計算処理部105は、図20のコールツリーから、どのメソッドからどのメソッドを呼ぶ可能性があるのかを知ることができる。
The importance calculation processing unit 105 constructs a call relationship (call tree) from the method call relationship information 1307 shown in FIG. 19F in the call relationship construction processing (S302 in FIG. 3). FIG. 20 shows an example of a call tree generated from the method call relation information 1307 in FIG. 19F. The importance calculation processing unit 105 can know which method is likely to be called from which method from the call tree of FIG.
次に、重要度計算処理部105は、実行経路解析処理(図3のS303及び図7)において、構成したコールツリーから実行経路を抽出し、メソッドの呼び出し経路情報1302を出力する。図20のコールツリーの場合、抽出される実行経路は、図19Bのメソッドの呼び出し経路情報1302の4つの実行経路である。
Next, in the execution path analysis process (S303 in FIG. 3 and FIG. 7), the importance calculation processing unit 105 extracts the execution path from the constructed call tree and outputs the method call path information 1302. In the case of the call tree of FIG. 20, the extracted execution paths are the four execution paths of the method call path information 1302 of FIG. 19B.
具体的には、それらは、method_a()、method_a()→method_b()、method_a()→method_b()→method_c()、method_a()→method_b()→thorowException()の4つの実行経路である。
Specifically, they are four execution paths: method_a (), method_a () → method_b (), method_a () → method_b () → method_c (), method_a () → method_b () → throwException (). .
なお、ここでの実行経路は、構成したコールツリーにおいて、起点(実行経路の始点メソッド)を固定し、起点から隣接する終点(実行経路の終点メソッド)を順次探索して得られた経路である。
The execution path here is a path obtained by fixing the starting point (the starting point method of the execution path) in the configured call tree and sequentially searching for the end point adjacent to the starting point (the end method of the execution path). .
実行経路の重要度基準値計算処理(図3のS304及び図9)において、重要度計算処理部105は、実行経路解析処理(S303)で抽出した各実行経路について、実行経路の重要度基準値を計算する。本例では、重要度計算処理部105は、実行経路の重要度基準値を、そこに含まれるメソッドの実行回数から求める。各メソッドの実行回数は、図19Cに示すメソッドの実行回数情報1303に含まれている。
In the execution path importance level reference value calculation process (S304 in FIG. 3 and FIG. 9), the importance level calculation processing unit 105 executes the execution path importance level reference value for each execution path extracted in the execution path analysis process (S303). Calculate In this example, the importance calculation processing unit 105 obtains the importance reference value of the execution path from the number of executions of the method included therein. The number of execution times of each method is included in the method execution number information 1303 shown in FIG. 19C.
本例において、重要度計算処理部105は、実行経路に含まれるメソッドの実行回数の単純和を算出し、その値を実行経路の重要度基準値として使用する。各実行経路の重要度基準値の計算結果は、図19Bのメソッドの呼び出し経路情報1302において、各実行経路に対応して示された数値である。例えば、実行経路1502(method_a()、method_b()、method_c()の順で実行する実行経路)の場合、実行経路の重要度基準値は5+45+65=115である(図19Bにおける参照符号1508が示す値)。
In this example, the importance calculation processing unit 105 calculates a simple sum of the number of execution times of the methods included in the execution path, and uses the value as the importance reference value of the execution path. The calculation result of the importance reference value of each execution path is a numerical value corresponding to each execution path in the method call path information 1302 of FIG. 19B. For example, in the case of the execution path 1502 (execution path executed in the order of method_a (), method_b (), method_c ()), the importance reference value of the execution path is 5 + 45 + 65 = 115 (reference numeral 1508 in FIG. 19B indicates value).
重要度計算処理部105は、トレース情報取得レベル判定処理(図3のS305及び図10)において、実行経路の重要度基準値の計算結果及び図21に例示するトレース情報取得レベルと実行経路の重要度基準値の対応表121から、各実行経路のトレース情報取得レベルを求める。
In the trace information acquisition level determination process (S305 in FIG. 3 and FIG. 10), the importance degree calculation processing unit 105 calculates the importance reference value of the execution path and the importance of the trace information acquisition level and the execution path illustrated in FIG. The trace information acquisition level of each execution path is obtained from the degree reference value correspondence table 121.
図21は、図19A~図19Iのプロファイル情報111に対応する、トレース情報取得レベルと実行経路の重要度基準値の対応表121を示している。実行経路の重要度基準値の平均値及び標準偏差は、それぞれ、55.3及び45.2である。従って、トレース情報取得レベルに対応する実行経路の重要度基準値の範囲は、それぞれ、図21に示す通りとなる。重要度計算処理部105は、図21の対応表121を用いて、図19Bに示すメソッドの呼び出し経路情報1302における、各実行経路のトレース情報取得レベルを決定する。
FIG. 21 shows a correspondence table 121 of trace information acquisition levels and execution path importance reference values corresponding to the profile information 111 of FIGS. 19A to 19I. The average value and the standard deviation of the importance reference values of the execution path are 55.3 and 45.2, respectively. Therefore, the range of the importance reference value of the execution path corresponding to the trace information acquisition level is as shown in FIG. The importance level calculation processing unit 105 determines the trace information acquisition level of each execution path in the method call path information 1302 shown in FIG. 19B using the correspondence table 121 of FIG.
具体的には、実行経路method_a()のトレース情報取得レベルは、その重要度基準値が5なので、「詳細」である。実行経路method_a()→method_b()のトレース情報取得レベルは、その実行経路の重要度基準値が50なので、「標準」である。同様に、実行経路method_a()→method_b()→method_c()のトレース情報取得レベルは「簡易」、method_a()→method_b()→thorowException()のトレース情報取得レベルは「標準」である。
Specifically, the trace information acquisition level of the execution path method_a () is “detailed” because its importance level reference value is 5. The trace information acquisition level of the execution path method_a () → method_b () is “standard” because the importance reference value of the execution path is 50. Similarly, the trace information acquisition level of the execution path method_a () → method_b () → method_c () is “simple”, and the trace information acquisition level of method_a () → method_b () → throwException () is “standard”.
次に、プログラム拡張処理部104は、プログラム拡張処理(図2のS103及び図11)において、トレース情報取得レベル判定処理(図3のS305)で求めた各メソッドのトレース情報取得レベルに基づき、図18のプログラム例の各メソッドにトレース情報取得用のプローブを挿入する。図22A~図22Dは、プログラム109のクラス2801~2804のそれぞれにプローブを挿入した結果の例(拡張プログラム110の例)を示す。
Next, based on the trace information acquisition level of each method obtained by the trace information acquisition level determination process (S305 in FIG. 3) in the program extension process (S103 in FIG. 2 and FIG. 11), the program extension processing unit 104 A probe for acquiring trace information is inserted into each method of 18 example programs. 22A to 22D show examples of results of inserting probes into classes 2801 to 2804 of the program 109 (examples of the extended program 110).
method_a()のトレース情報取得レベルは「詳細」であるため、method_a()については、メソッドの呼び出し関係、メソッドの引数・返り値、内部変数の値を取得する必要がある。図22Aにおける参照符号2805、2806、2807、2808が示すプローブは、クラス2801に挿入されたトレース情報を取得するためのプローブである。これらプローブはJavaのクラスファイルに直接挿入されてしまうため、本来、これらを外部からは見ることはできない。
Since the trace information acquisition level of method_a () is “detailed”, it is necessary to acquire the method call relationship, method argument / return value, and internal variable value for method_a (). Probes indicated by reference numerals 2805, 2806, 2807, and 2808 in FIG. 22A are probes for acquiring trace information inserted into the class 2801. Since these probes are inserted directly into the Java class file, they cannot be viewed from the outside.
ここでは、説明を簡便化するために、プローブをAPI(Application Programming Interface)として記述する。図22Aにおいて、methodEntry()2805は、メソッド開始情報を取得するためのプローブである。getArgument()2806は、メソッドの引数を取得するためのプローブである。
Here, in order to simplify the explanation, the probe is described as an API (Application Programming Interface). In FIG. 22A, methodEntry () 2805 is a probe for acquiring method start information. getArgent () 2806 is a probe for acquiring a method argument.
getLocalValue()2807は、内部変数情報を取得するためのプローブである。getReturnValue()2808は、返り値情報を取得するためのプローブである。methodExit()2809は、メソッド終了情報を取得するためのプローブである。
GetLocalValue () 2807 is a probe for acquiring internal variable information. getReturnValue () 2808 is a probe for acquiring return value information. methodExit () 2809 is a probe for acquiring method end information.
図22Bのmethod_b()のトレース情報取得レベルは「標準」であるため、メソッドの呼び出し関係情報、メソッドの引数・返り値情報を取得するプローブが挿入されている。具体的には、methodEntry()、getArgument()、getReturnValue()及びmethodExit()が、クラス2802に挿入されている。
Since the trace information acquisition level of method_b () in FIG. 22B is “standard”, a probe for acquiring method call relation information and method argument / return value information is inserted. Specifically, methodEntry (), getArgent (), getReturnValue (), and methodExit () are inserted into class 2802.
図22Cのmethod_c()のトレース情報取得レベルは「簡易」であるため、メソッドの呼び出し関係情報を取得するプローブが挿入されている。具体的には、methodEntry()及びmethodExit()が、クラス2803に挿入されている。
Since the trace information acquisition level of method_c () in FIG. 22C is “simple”, a probe for acquiring method call relation information is inserted. Specifically, methodEntry () and methodExit () are inserted into class 2803.
図22DのthrowException()のトレース情報取得レベルは「標準」であるため、メソッドの呼び出し関係情報、メソッドの引数・返り値情報を取得するプローブ()が挿入されている。具体的には、methodEntry()、getArgument()、getReturnValue()及びmethodExit()が、クラス2804に挿入されている。
Since the trace information acquisition level of throwException () in FIG. 22D is “standard”, a probe () for acquiring method call relation information and method argument / return value information is inserted. Specifically, methodEntry (), getArgent (), getReturnValue (), and methodExit () are inserted into class 2804.
次に、図23のフローチャートを参照して、プログラム実行処理部120による、図22A~図22Dに示す拡張プログラム例のプログラム実行処理(図2のS104)を説明する。図23に示すように、プログラム実行処理部120は、ステップS1401において、拡張プログラム110から1命令読み込む。
Next, the program execution processing (S104 in FIG. 2) of the example of the extended program shown in FIGS. 22A to 22D by the program execution processing unit 120 will be described with reference to the flowchart in FIG. As shown in FIG. 23, the program execution processing unit 120 reads one instruction from the extension program 110 in step S1401.
次に、プログラム実行処理部120は、ステップS1402において、ステップS1401で読み込んだ命令が、トレース情報取得プローブか否かを判定する。トレース情報取得プローブの場合(S1402:YES)、プログラム実行処理部120はステップS1403に進む。トレース情報取得プローブではない場合(S1402:NO)、プログラム実行処理部120は、プログラム実行処理121を終了する。次に、プログラム実行処理部120は、トレース情報取得処理(S1403)において、トレース情報を取得する。
Next, in step S1402, the program execution processing unit 120 determines whether or not the instruction read in step S1401 is a trace information acquisition probe. In the case of the trace information acquisition probe (S1402: YES), the program execution processing unit 120 proceeds to step S1403. If the probe is not a trace information acquisition probe (S1402: NO), the program execution processing unit 120 ends the program execution processing 121. Next, the program execution processing unit 120 acquires trace information in the trace information acquisition process (S1403).
トレース情報取得処理(S1403)が取得するトレース情報は、メソッドの開始情報(methodEntry())、メソッドの終了情報(methodExit())、メソッドの引数情報(getArgument())、メソッドの返り値情報(getReturnValue())、内部変数情報(getLocalValue())のうちのいずれかである。
Trace information acquired by the trace information acquisition process (S1403) includes method start information (methodEntry ()), method end information (methodExit ()), method argument information (getArgent ()), and method return value information ( getReturnValue ()) or internal variable information (getLocalValue ()).
メソッドの開始情報のプローブは、メソッドの先頭で実行され、メソッドID(各メソッドに一意に割り当てられた正の整数値)、呼び出し元のメソッドの行番号、情報取得の時刻を記録する。メソッドの終了情報のプローブは、return処理の直前で呼ばれ、メソッドID、呼び出し元のメソッドの行番号、情報取得の時刻を記録する。これらプローブの情報から、当該メソッドと呼び出し元メソッドとの間の呼び出し関係を特定することができる。プローブにより記録される情報取得の時刻は、メソッド実行時間の算出やメソッドの実行頻度の算出に使用される。
The method start information probe is executed at the beginning of the method, and records the method ID (a positive integer value uniquely assigned to each method), the line number of the calling method, and the information acquisition time. The probe of the method end information is called immediately before the return process, and records the method ID, the line number of the calling method, and the information acquisition time. From the probe information, the calling relationship between the method and the caller method can be specified. The information acquisition time recorded by the probe is used to calculate the method execution time and the method execution frequency.
メソッドの引数情報のプローブは、メソッドの開始情報取得プローブの直後に挿入され実行される。取得し記録する情報は、メソッドID、引数名、変数型、引数の値、情報取得の時刻である。メソッドの返り値情報のプローブは、メソッドのreturn処理直前で実行される。取得し記録する情報は、メソッドID、返り値名、変数型、返り値情報取得の時刻である。これにより、メソッドの引数・返り値を特定することができる。
The method argument information probe is inserted and executed immediately after the method start information acquisition probe. The information to be acquired and recorded includes the method ID, argument name, variable type, argument value, and information acquisition time. The probe of the return value information of the method is executed immediately before the method return process. The information to be acquired and recorded is the method ID, return value name, variable type, and return value information acquisition time. As a result, the method argument and return value can be specified.
内部変数情報を取得するプローブは、変数へアクセスする直前に挿入される。取得し記録する情報は、メソッドID、内部変数名、内部変数型、内部変数の値、呼び出し元メソッドの行番号、内部変数にアクセスした行番号、情報取得の時刻である。これにより、メソッドの内部変数の値を特定することができる。
The probe that acquires internal variable information is inserted immediately before accessing the variable. The information to be acquired and recorded includes a method ID, an internal variable name, an internal variable type, an internal variable value, a caller method line number, an access to the internal variable, and an information acquisition time. Thereby, the value of the internal variable of the method can be specified.
図24A及び図24Bは、トレース情報取得処理(図23のS1403)が、図18のプログラム例から取得したトレース情報の例を示している。図24Aのテーブル2901は、トレース情報のテーブルである。図24Bのテーブル2902は、メソッドIDのテーブルである。
24A and 24B show examples of trace information acquired by the trace information acquisition process (S1403 in FIG. 23) from the program example in FIG. A table 2901 in FIG. 24A is a table of trace information. A table 2902 in FIG. 24B is a method ID table.
図24Aのテーブル2901の1列目の数字1~8は、説明のために付与した番号である。図24Bのテーブル2902のメソッドIDは、各メソッドに対して一意に割り当てられている。
Numerals 1 to 8 in the first column of the table 2901 in FIG. 24A are numbers given for explanation. The method ID of the table 2902 in FIG. 24B is uniquely assigned to each method.
テーブル2901における1行目(図24Aの2904)は、メソッドIDが1であるメソッド(method_a())が、呼び出されたことを表す。呼び出し元のメソッドの行番号は不明なので、「none」が記録されている。テーブル2901における2行目(図24Aにおける2905)は、メソッドIDが1であるメソッド(method_a())の引数情報を表している。そのメソッド(method_a())は引数を取らないので、引数の名前、型、値は「none」と記録されている。
The first line (2904 in FIG. 24A) in the table 2901 indicates that a method (method_a ()) having a method ID of 1 has been called. Since the line number of the calling method is unknown, “none” is recorded. The second line in the table 2901 (2905 in FIG. 24A) represents the argument information of the method (method_a ()) whose method ID is 1. Since the method (method_a ()) takes no argument, the name, type, and value of the argument are recorded as “none”.
テーブル2901における3行目(図24Aの2906)は、メソッドIDが1であるメソッド(method_a())において、内部変数がアクセスされたときの情報である。呼び出し元の行番号は不明なので、「none」と記録されている。「id」という変数に「-11」が格納されており、その変数が、(method_a())の3行目でアクセスされたことを表している。
The third line (2906 in FIG. 24A) in the table 2901 is information when an internal variable is accessed in a method (method_a ()) having a method ID of 1. Since the line number of the caller is unknown, “none” is recorded. “-11” is stored in the variable “id”, which indicates that the variable is accessed in the third line of (method_a ()).
テーブル2901における8行目(図24Aの2907)のExceptionは、例外発生時に例外情報取得処理で取得されたトレース情報である。この情報は、メソッドIDが4のメソッドで例外が発生していることを示している。また、例外のキャッチ関係の情報が「none」であり、例外がいずれのメソッドにもキャッチされなかったことを示す。
The exception on the eighth line (2907 in FIG. 24A) in the table 2901 is trace information acquired in the exception information acquisition process when an exception occurs. This information indicates that an exception has occurred in the method whose method ID is 4. Also, the exception catch information is “none”, indicating that no exception was caught by any method.
図25A~図25Cは、図18のプログラム例の実行をトレースした場合の出力トレース情報112の例を示す。本例において、図25Aのトレース情報管理テーブル1801は、トレーサのバージョン番号、Java仮想マシンのプロセスID、トレース実行ID(トレースを実行した際にトレーサが発行するID)、スレッド数、スレッドIDを格納する。本例では、トレース情報管理テーブル1801は、トレース開始時に生成される。
25A to 25C show examples of the output trace information 112 when the execution of the program example of FIG. 18 is traced. In this example, the trace information management table 1801 in FIG. 25A stores the version number of the tracer, the process ID of the Java virtual machine, the trace execution ID (ID issued by the tracer when the trace is executed), the number of threads, and the thread ID. To do. In this example, the trace information management table 1801 is generated at the start of tracing.
図25BのメソッドIDテーブル1803は、メソッド名とそのメソッド名に対応するメソッドIDを格納する。本例では、メソッドIDテーブル1803は、クラスが読み込まれた時に生成および追記される。図25Cのトレース情報ログ1802は、トレース情報の種類(メソッドの開始・終了、例外)、呼び出し元のメソッドID(例外の場合は例外が発生したメソッドID)、呼び出し先のメソッドID(例外の場合は例外をキャッチしたメソッドのID)を格納する。
The method ID table 1803 in FIG. 25B stores a method name and a method ID corresponding to the method name. In this example, the method ID table 1803 is generated and appended when a class is read. The trace information log 1802 in FIG. 25C shows the type of trace information (method start / end, exception), the caller's method ID (the method ID in which an exception occurred in the case of an exception), and the callee's method ID (in the case of an exception). Stores the ID of the method that caught the exception.
図26A及び図26Bは、図18のプログラムの実行において取得されたトレース情報の例を示している。但し、図26A及び図26Bのトレース情報は、図18のプログラム109の引数を変更し、複数回実行した結果を示している。図26Aは、本実施形態の手法によって生成したコールトレース1901である。図26Bは、従来手法(全メソッドで詳細に情報を取得する手法)により生成されたトレース1902である。
FIGS. 26A and 26B show examples of trace information acquired in the execution of the program of FIG. However, the trace information in FIG. 26A and FIG. 26B shows the result of changing the argument of the program 109 in FIG. FIG. 26A is a call trace 1901 generated by the method of this embodiment. FIG. 26B shows a trace 1902 generated by a conventional method (a method for acquiring information in detail by all methods).
図26Aと図26Bを比較すると、図26Bのトレース情報は、参照符号1903、1904、1905で指示されるデータが、表示されている。データ(情報)1903、1904、1905はエラーの特定に用いないデータであるため、障害解析において不要である。一方、図26Aに示すトレース情報は上記不要なデータを含んでおらず、従来手法のトレース情報と比べて、本実施形態野手法は、効率的にトレース情報が取得できていることを示している。
26A and 26B are compared, the trace information in FIG. 26B displays data indicated by reference numerals 1903, 1904, and 1905. Since data (information) 1903, 1904, and 1905 are data that are not used for specifying an error, they are not necessary for failure analysis. On the other hand, the trace information shown in FIG. 26A does not include the unnecessary data, and the technique according to the present embodiment shows that the trace information can be efficiently acquired as compared with the trace information of the conventional technique. .
実際のアプリケーションではメソッドの呼び出しが深く且つ実行回数も非常に多い。そのため、従来手法でトレースを取得するとトレース情報のデータ量が膨大になる可能性が高い。
In an actual application, method calls are deep and the number of executions is very large. Therefore, if a trace is acquired by a conventional method, there is a high possibility that the amount of trace information will be enormous.
それに対し、本実施形態は、実行経路に含まれる複数の手続の重要度からその実行経路の重要度を決定し、その実行経路の重要度に従って実行経路に含まれるメソッドでのトレース取得情報の種類を決定する。
In contrast, in the present embodiment, the importance of the execution path is determined from the importance of a plurality of procedures included in the execution path, and the type of trace acquisition information in the method included in the execution path is determined according to the importance of the execution path. To decide.
このように、本実施形態は、メソッド単体の重要度ではなく、他のメソッドを含む実行経路の重要度の観点から、重要度が高いメソッドの情報を詳細に取得し、重要ではないメソッドの情報を簡略化し、トレース情報のデータ量を削減する。このため、本実施形態は、適切に重要なトレース情報は残しつつ、トレース情報のデータ量の削減を行うことができる。
As described above, this embodiment obtains detailed information on a method with high importance from the viewpoint of the importance of an execution path including other methods, not the importance of a single method, and information on methods that are not important. To reduce the amount of trace information data. For this reason, the present embodiment can reduce the data amount of the trace information while appropriately keeping important trace information.
上述の構成は、特定した実行経路において、実行経路の重要度を終点メソッドのみに適用する。上記構成において、全てのメソッドがいずれかの実行経路の終点メソッドであり、上記適用により全てのメソッドの重要度(取得情報種類)を決定、更新することができる。設計によっては、一つ実行経路に含まれる複数のメソッドに、その実行経路の重要度を適用してもよい。
The above configuration applies the importance of the execution path only to the end point method in the specified execution path. In the above configuration, all methods are end point methods of any execution path, and importance (acquired information type) of all methods can be determined and updated by the above application. Depending on the design, the importance of the execution path may be applied to a plurality of methods included in one execution path.
上述のように、実行経路の重要度は、そこに含まれる全てのメソッドの重要度(トレース情報)を使用して決定することが好ましいが、設計によっては、予め設定された規則に従って選択された一部のメソッドの重要度から実行経路の重要度を決定してもよい。ユーザ指定がない場合は、トレース対象プログラムの全ての実行経路について重要度の計算を繰り返すことが好ましいが、設計によって、一部の範囲においてのみ行ってもよい。
As described above, the importance of the execution path is preferably determined using the importance (trace information) of all the methods included therein, but depending on the design, it is selected according to a preset rule. The importance of the execution path may be determined from the importance of some methods. When there is no user designation, it is preferable to repeat the importance calculation for all the execution paths of the trace target program, but it may be performed only in a part of the range by design.
〔第2の実施形態〕
以下において、本発明の第2の実施形態を説明する。本実施形態は、呼び出し先のメソッドの重要度(下記例においてトレース取得レベル)を用いて、呼び出し元のメソッドの重要度(トレース取得レベル)を決定する。これにより、コールツリー上で、メソッドの重要度が高いメソッドに隣接する呼び出し元メソッドの重要度が低く、かつ、メソッドの重要度が高いメソッドが孤立している場合に、それらを含む実行経路が重要な実行経路として抽出されないことを防ぐことができる。下記例は、重要度を表す値としてトレース取得レベルを使用するが、重要度を表す値として、他の値、例えば重要度基準値を使用してもよい。 [Second Embodiment]
In the following, a second embodiment of the present invention will be described. In the present embodiment, the importance (trace acquisition level) of the call source method is determined using the importance of the call destination method (trace acquisition level in the following example). As a result, when the method of the caller adjacent to the method with high importance of the method is low in importance and the method with high importance of the method is isolated on the call tree, the execution path including them is changed. It can be prevented that it is not extracted as an important execution path. In the following example, a trace acquisition level is used as a value representing importance, but other values, for example, importance reference values may be used as values representing importance.
以下において、本発明の第2の実施形態を説明する。本実施形態は、呼び出し先のメソッドの重要度(下記例においてトレース取得レベル)を用いて、呼び出し元のメソッドの重要度(トレース取得レベル)を決定する。これにより、コールツリー上で、メソッドの重要度が高いメソッドに隣接する呼び出し元メソッドの重要度が低く、かつ、メソッドの重要度が高いメソッドが孤立している場合に、それらを含む実行経路が重要な実行経路として抽出されないことを防ぐことができる。下記例は、重要度を表す値としてトレース取得レベルを使用するが、重要度を表す値として、他の値、例えば重要度基準値を使用してもよい。 [Second Embodiment]
In the following, a second embodiment of the present invention will be described. In the present embodiment, the importance (trace acquisition level) of the call source method is determined using the importance of the call destination method (trace acquisition level in the following example). As a result, when the method of the caller adjacent to the method with high importance of the method is low in importance and the method with high importance of the method is isolated on the call tree, the execution path including them is changed. It can be prevented that it is not extracted as an important execution path. In the following example, a trace acquisition level is used as a value representing importance, but other values, for example, importance reference values may be used as values representing importance.
図27は、本実施形態のコンピュータの構成を模式的に示している。本実施形態のJavaVM114は、第1の実施形態の構成に加え、プログラム監視処理部119を備えている。さらに、プログラム監視処理部119は、監視情報126をメモリ103に格納する。以下においては、第1の実施形態との相違点を主に説明する。
FIG. 27 schematically shows the configuration of the computer according to the present embodiment. The Java VM 114 of this embodiment includes a program monitoring processing unit 119 in addition to the configuration of the first embodiment. Further, the program monitoring processor 119 stores the monitoring information 126 in the memory 103. In the following, differences from the first embodiment will be mainly described.
本例において、プログラム監視処理部119は、実行経路解析処理(図3のS303を参照)で設定したメソッドの重要度(下記例においてトレース情報取得レベル)が規定値(例えば、「詳細」)以上のメソッドを監視する。
In this example, the program monitoring processing unit 119 has a method importance (trace information acquisition level in the following example) set in the execution path analysis process (see S303 in FIG. 3) greater than or equal to a specified value (eg, “details”). Monitor the method.
具体的には、重要度が規定値(閾値)以上のメソッドが呼ばれたか否かを監視する。プログラム監視処理部119は、予め定められた条件を満たす場合に、監視しているメソッドを呼び出すメソッド(呼び出し元メソッド)のトレース情報取得レベルを変更し、それを示す情報を監視情報126に格納する。
Specifically, it is monitored whether or not a method whose importance is equal to or higher than a specified value (threshold) is called. The program monitoring processing unit 119 changes the trace information acquisition level of a method (caller method) that calls a monitored method when a predetermined condition is satisfied, and stores information indicating the change in the monitoring information 126. .
プロファイル情報更新処理部118は、プロファイル情報111の更新において、監視情報126を参照してトレース情報取得レベルが変更されたメソッドとそのトレース情報取得レベルとを特定する情報を取得し、プロファイル情報111中のトレース情報取得レベル1309(図19I参照)に格納する。プログラム拡張処理部104は、プロファイル情報111が示すトレース情報取得レベルを変更したメソッドに対して、そのトレース情報取得レベルに対応するプローブを挿入する。
The profile information update processing unit 118 refers to the monitoring information 126 in the update of the profile information 111, acquires information that identifies the method whose trace information acquisition level has been changed and the trace information acquisition level. Is stored in the trace information acquisition level 1309 (see FIG. 19I). The program extension processing unit 104 inserts a probe corresponding to the trace information acquisition level for a method whose trace information acquisition level indicated by the profile information 111 is changed.
このように、呼び出し先メソッドのトレース情報取得レベルに応じて呼び出し元のメソッドのトレース情報取得レベルを上げることで(取得するトレース情報の詳細度を上げることで)、重要度が高く孤立したメソッドで不具合が発生した場合に、その原因を実行経路におけるトレース情報から推定することが可能になる。
In this way, by increasing the trace information acquisition level of the caller method according to the trace information acquisition level of the callee method (by increasing the level of detail of the trace information to be acquired), When a problem occurs, the cause can be estimated from the trace information in the execution path.
プログラム監視処理部119の動作(プログラム監視処理(S112))を、図29のフローチャートを参照して説明する。本実施形態では、図28の全体処理の流れにおけるプログラム実行処理(S104)の実行後に、プログラム監視処理部119はプログラム監視処理(S112)を実行する。
The operation of the program monitoring processing unit 119 (program monitoring processing (S112)) will be described with reference to the flowchart of FIG. In the present embodiment, after executing the program execution process (S104) in the overall process flow of FIG. 28, the program monitoring processing unit 119 executes the program monitoring process (S112).
図29のフローチャートに示すように、プログラム監視処理部119は、ステップS1601において、重要度が規定値以上のメソッドが呼ばれたか否かを判定する。重要度が規定値以上のメソッドが呼ばれた場合(S1601:YES)、プログラム監視処理部119は、ステップS1602に進む。呼ばれていない場合(S1601:NO)、プログラム監視処理部119はプログラム監視処理を終了する。
As shown in the flowchart of FIG. 29, the program monitoring processing unit 119 determines in step S1601 whether or not a method having an importance level equal to or higher than a specified value has been called. When a method having an importance level equal to or higher than a specified value is called (S1601: YES), the program monitoring processing unit 119 proceeds to step S1602. If not called (S1601: NO), the program monitoring processor 119 ends the program monitoring process.
次に、ステップS1602において、プログラム監視処理部119は、その重要度が規定値以上のメソッドが起点メソッドである否かを判定する。起点メソッドである場合(S1602:NO)、プログラム監視処理部119は、プログラム監視処理を終了する。起点メソッドでない場合(S1602:YES)、プログラム監視処理部119は、ステップS1603に進む。
Next, in step S1602, the program monitoring processing unit 119 determines whether or not a method whose importance is equal to or higher than a specified value is a starting method. When the method is the starting method (S1602: NO), the program monitoring processing unit 119 ends the program monitoring processing. If it is not the starting method (S1602: YES), the program monitoring processor 119 proceeds to step S1603.
次に、ステップS1603において、プログラム監視処理部119は、Java仮想マシン114で性能障害が発生しているか否かを判定する。本実施形態において、性能障害は、CPU利用率やメモリ使用量、Java仮想マシン114のヒープメモリの使用量などの性能指標が予め設定した閾値を超えた場合とする。
Next, in step S1603, the program monitoring processor 119 determines whether or not a performance failure has occurred in the Java virtual machine 114. In the present embodiment, the performance failure is assumed to be when a performance index such as a CPU usage rate, a memory usage amount, or a heap memory usage amount of the Java virtual machine 114 exceeds a preset threshold.
ステップS1603において性能障害が発生していると判定した場合(S1603:YES)、プログラム監視処理部119は、監視情報126を初期化し、プログラム監視処理を終了する。性能障害が発生していないと判定した場合(S1603:NO)、プログラム監視処理部119は、ステップS1604に進む。
If it is determined in step S1603 that a performance failure has occurred (S1603: YES), the program monitoring processor 119 initializes the monitoring information 126 and ends the program monitoring process. If it is determined that no performance failure has occurred (S1603: NO), the program monitoring processor 119 proceeds to step S1604.
次に、ステップS1604において、プログラム監視処理部119は、重要度が高いメソッドの呼び出し元のトレース情報取得レベルを上げ、それを示す情報を監視情報126に格納する。ステップS1604の終了後、プログラム監視処理部119は、プログラム監視処理を終了する。
Next, in step S 1604, the program monitoring processing unit 119 increases the trace information acquisition level of the caller of the method having high importance, and stores information indicating this in the monitoring information 126. After the end of step S1604, the program monitoring processor 119 ends the program monitoring process.
このように、効率的にトレース情報を収集し、そのトレース情報から重要度が高い実行経路におけるトレース情報を詳細化することで、障害発生原因の発見をより効果的に支援することができる。
Thus, it is possible to more effectively support the discovery of the cause of the failure by efficiently collecting the trace information and refining the trace information in the execution path having a high importance from the trace information.
上記例は、トレース情報取得レベルが規定値以上のメソッドが呼ばれるたびに、呼び出し元のメソッドのトレース情報取得レベルを上げる。重要度の変更条件が、メソッドの呼び出しを含むことで、取得トレース情報の増加を抑えつつ、障害解析に有用なトレース情報を取得することができる。
The above example raises the trace information acquisition level of the calling method each time a method whose trace information acquisition level is higher than the specified value is called. When the importance change condition includes a method call, it is possible to acquire trace information useful for failure analysis while suppressing an increase in acquired trace information.
上記例は、呼び出し元メソッドを上げる条件である呼び出しの規定回数が1回であるが、規定数は複数回であってもよい。呼び出し元メソッドのトレース情報取得レベルを変更する条件は、メソッドの呼び出しを含まなくてもよく、これと異なるイベントを含んでいてもよい。プログラム監視処理部119は、呼び出し元メソッドのトレース情報取得レベル(呼び出し元メソッドの重要度)を上げて呼び出し先メソッドのトレース情報取得レベル(呼び出し先メソッドの重要度)と一致させてもよいし、呼び出し元メソッドのトレース情報取得レベルを呼び出し先メソッドのトレース情報取得レベルよりも低い値まで上げてもよい。
In the above example, the specified number of calls, which is a condition for raising the caller method, is one, but the specified number may be multiple. The condition for changing the trace information acquisition level of the calling method may not include the method call and may include an event different from this. The program monitoring processor 119 may raise the trace information acquisition level of the caller method (the importance of the caller method) to match the trace information acquisition level of the callee method (the importance of the callee method), The trace information acquisition level of the caller method may be raised to a value lower than the trace information acquisition level of the callee method.
以下において、図18のプログラム例のトレース情報を、図30A~図30C及び図31A~図31Cを参照して説明する。図18のプログラム例に対するプロファイル情報111は、図30A~図30Cの情報を保持しているとする。重要度計算基準は実行回数であり、図30A~図30Cが示す各メソッドの重要度基準値は、当該メソッド単体の実行回数である。重要度の数字が小さい(実行回数が少ない)ほど、そのメソッドが(障害解析にとって)より重要であることを示す。
Hereinafter, the trace information of the program example of FIG. 18 will be described with reference to FIGS. 30A to 30C and FIGS. 31A to 31C. It is assumed that the profile information 111 for the program example in FIG. 18 holds the information in FIGS. 30A to 30C. The importance calculation standard is the number of executions, and the importance standard value of each method shown in FIGS. 30A to 30C is the number of executions of the method itself. A smaller importance number (less execution times) indicates a more important method (for failure analysis).
図30A~図30Cは、プロファイル情報111の表示画面の一例である。各メソッドのトレース情報取得レベルは、当該メソッドの重要度をもとに決定されている。決定されたトレース情報取得レベルは、図30A~図30Cの各メソッドにおいて、トレース情報取得レベルとして表示されている。なお、トレース情報取得レベルの変更過程をわかりやすくするため、トレース情報取得レベルが「詳細」のメソッドは、太い枠で表示されている。
30A to 30C are examples of display screens of the profile information 111. FIG. The trace information acquisition level of each method is determined based on the importance of the method. The determined trace information acquisition level is displayed as the trace information acquisition level in each method of FIGS. 30A to 30C. In order to make the process of changing the trace information acquisition level easier to understand, methods whose trace information acquisition level is “detailed” are displayed with a thick frame.
重要度が高いメソッドであるExceptionHandler.throwException()2103が一度実行されると、ExceptionHandler.throwException()の呼び出し元のメソッドである、SampleClassB.method_b(int)2102のトレース情報取得レベルが上がる。
ExceptionExceptionHandler. Is a method with high importance. Once the throwException () 2103 is executed, the ExecutionHandler. SampleClassB., which is the method of the caller of throwException (). The trace information acquisition level of method_b (int) 2102 is raised.
本実施形態では、重要度が高いメソッドを実行した場合、トレース情報取得レベルを最高にするため、SampleClassB.method_b(int)2103のトレース情報取得レベルを「詳細」に設定する。図31Aは、この時のトレース情報の例2201を示している。図31Aの情報2201では、不具合の発生原因を特定することが困難である。
In this embodiment, in order to maximize the trace information acquisition level when a method with high importance is executed, SampleClassB. The trace information acquisition level of method_b (int) 2103 is set to “detail”. FIG. 31A shows an example 2201 of trace information at this time. In the information 2201 in FIG. 31A, it is difficult to specify the cause of the failure.
同一実行経路でExceptionHandler.throwException()が二度実行されると、SampleClassB.method_b(int)の呼び出し元のメソッドであるSampleClassA.method_a()のトレース情報取得レベルも「詳細」に設定する。
ExceptionException. If throwException () is executed twice, SampleClassB. SampleClassA., which is a method of calling method_b (int). The trace information acquisition level of method_a () is also set to “detail”.
図31Bは、この時のトレース情報例2202を示している。図31Bの情報2202は、図31Aの情報と比べて詳細であるが、不具合の発生原因がmethod_a()内かmethod_b(int)内かを判定することができない。
FIG. 31B shows a trace information example 2202 at this time. The information 2202 in FIG. 31B is more detailed than the information in FIG. 31A, but it cannot be determined whether the cause of the failure is in method_a () or method_b (int).
同一実行経路でExceptionHandler.throwException()が三度実行された場合、SampleClassA.method_a()の呼び出し元のメソッドは存在しないので、何も行わない。図31Cは、この時のトレース情報例2203を示している。この情報から、不具合の発生原因が、SampleClass.method_a()の内部変数であるidに負数が代入されたことが原因であることがわかる。
ExceptionException. If throwException () is executed three times, SampleClassA. Since there is no method that calls method_a (), nothing is done. FIG. 31C shows an example of trace information 2203 at this time. From this information, the cause of the failure is SampleClass. It can be seen that the cause is that a negative number is assigned to id which is an internal variable of method_a ().
以上のように、本実施形態の処理により、障害箇所のメソッドのみならず、障害が発生した実行経路における他のメソッドの詳細なトレース情報を取得できるので、プログラム実行における障害解析において、実行経路における障害の発生過程をより用意に特定することができる。
As described above, according to the processing of the present embodiment, detailed trace information of not only the method at the fault location but also other methods in the execution path in which the fault has occurred can be acquired. It is possible to more easily identify the failure occurrence process.
上記例は、各メソッドの取得情報種類をメソッド単独の重要度から決定し、その後、呼び出し元メソッドのトレース情報取得レベル重要度を呼び出し先メソッドのトレース情報取得レベルに応じて更新する。他の構成例において、第1の実施形態において説明したように、実行経路の重要度からメソッドにおけるトレース取得レベル(重要度)を決定し、その取得レベルを本実施形態の方法により更新することができる。
In the above example, the acquisition information type of each method is determined from the importance of the method alone, and then the trace information acquisition level importance of the caller method is updated according to the trace information acquisition level of the callee method. In another configuration example, as described in the first embodiment, the trace acquisition level (importance) in the method is determined from the importance of the execution path, and the acquisition level can be updated by the method of this embodiment. it can.
以上、本発明の実施形態を説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
As mentioned above, although embodiment of this invention was described, this invention is not limited to said embodiment. A person skilled in the art can easily change, add, and convert each element of the above-described embodiment within the scope of the present invention.
上記の各構成、機能、処理、処理部等は、それらの一部を、ハードウェアで実現してもよい。各機能を実現するためのプログラム及びデータを含む情報は、不揮発性半導体メモリ、ハードディスク、SSD(Solid State Drive)等の非一時的記憶媒体を有する記憶装置、又は、ICカード、SDカード、DVD等の、コンピュータ読み取り可能な非一時的記憶媒体に格納することができる。
Some of the above-described configurations, functions, processes, processing units, etc. may be realized by hardware. Information including programs and data for realizing each function is a storage device having a non-temporary storage medium such as a nonvolatile semiconductor memory, hard disk, SSD (Solid State Drive), or an IC card, SD card, DVD, etc. Can be stored in a computer-readable non-transitory storage medium.
プログラムはプロセッサによって実行されることで、定められた処理をメモリ及びポートを用いながら行う。上記実施形態において処理部(プログラム)を主語とする説明は、プロセッサを主語とした説明でもよい。また、プログラムが実行する処理は、そのプログラムが動作するコンピュータ及びコンピュータシステムが行う処理である。上記実施形態における構成要素の一部は本発明の範囲内省略することができ、異なる実施形態の構成要素を一つのシステムで使用することができる。
The program is executed by the processor to perform the specified processing using the memory and port. In the above-described embodiment, the description with the processing unit (program) as the subject may be an explanation with the processor as the subject. The processing executed by the program is processing performed by a computer and a computer system on which the program operates. Some of the components in the above embodiment can be omitted within the scope of the present invention, and the components in different embodiments can be used in one system.
101 コンピュータ、102 CPU、103 メモリ、114 Java仮想マシン、104プログラム拡張処理部、105 重要度計算処理部、107 トレースデータ出力処理部、109 プログラム、110 拡張プログラム、111 プロファイル情報、112 出力トレース情報、115 画面表示処理部、116 プログラム読込処理部、118 プロファイル情報更新処理部、119 プログラム監視処理部、120 プログラム実行処理部、121 トレース情報取得レベル・重要度基準値対応表、122 トレース対象指定情報、123 トレース実行経路指定情報、124 取得トレース情報、125 コールツリー情報、126 監視情報
101 computer, 102 CPU, 103 memory, 114 Java virtual machine, 104 program expansion processing section, 105 importance calculation processing section, 107 trace data output processing section, 109 program, 110 expansion program, 111 profile information, 112 output trace information, 115 screen display processing unit, 116 program reading processing unit, 118 profile information update processing unit, 119 program monitoring processing unit, 120 program execution processing unit, 121 trace information acquisition level / importance level reference value correspondence table, 122 tracing target designation information, 123 Trace execution path designation information, 124 Acquired trace information, 125 Call tree information, 126 Monitoring information
Claims (15)
- プログラムを実行するコンピュータを含むコンピュータシステムが、前記プログラムの実行におけるトレース情報を取得するトレース情報取得方法であって、
前記プログラムの実行おける実行経路に含まれる複数の手続のそれぞれにおいて、当該手続に対して設定されている種類のトレース情報を取得し、
取得した前記トレース情報を記憶領域に格納し、
前記複数の手続のそれぞれの重要度を、前記記憶領域に格納されているトレース情報を用いて決定し、
前記複数の手続に含まれる手続の重要度を用いて、前記複数の手続に含まれる他の手続において取得するトレース情報の種類を決める新たな重要度を決定し、
前記決定したトレース情報の種類を決める新たな重要度に従って、前記他の手続において取得するトレース情報の種類を更新し、
前記他の手続の実行において、前記更新した種類のトレース情報を取得することを特徴とするトレース情報取得方法。 A computer system including a computer that executes a program is a trace information acquisition method for acquiring trace information in the execution of the program,
In each of a plurality of procedures included in the execution path in the execution of the program, obtain the type of trace information set for the procedure,
Store the acquired trace information in a storage area,
Determining the importance of each of the plurality of procedures using trace information stored in the storage area;
Using the importance of the procedures included in the plurality of procedures, determine a new importance that determines the type of trace information to be acquired in other procedures included in the plurality of procedures,
According to the new importance determining the type of the determined trace information, update the type of trace information acquired in the other procedure,
In the execution of the other procedure, the updated type of trace information is acquired. - 請求項1に記載のトレース情報取得方法であって、
前記新たな重要度の前記決定は、
前記決定した前記複数の手続のそれぞれの重要度を用いて、前記実行経路の重要度を決定し、
前記実行経路の前記重要度を、前記他の手続において取得するトレース情報の種類を決める前記新たな重要度と決定することを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 1,
The determination of the new importance is
Using the determined importance of each of the plurality of procedures, determine the importance of the execution path,
The trace information acquisition method, wherein the importance of the execution path is determined as the new importance that determines the type of trace information acquired in the other procedure. - 請求項2に記載のトレース情報取得方法であって、
前記新たな重要度の前記決定は、
前記実行経路に含まれる全ての手続のそれぞれの重要度を、前記記憶領域に格納されている当該手続におけるトレース情報を用いて決定し、
前記全ての手続のそれぞれの重要度を用いて前記実行経路の前記重要度を決定し、
前記実行経路の前記重要度を、前記他の手続である前記実行経路における終点手続の前記新たな重要度と決定することを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 2,
The determination of the new importance is
Determining the importance of each of the procedures included in the execution path using trace information in the procedure stored in the storage area;
Determining the importance of the execution path using the importance of each of all the procedures;
The trace information acquisition method, wherein the importance of the execution path is determined as the new importance of the end point procedure in the execution path which is the other procedure. - 請求項3に記載のトレース情報取得方法であって、
前記新たな重要度の前記決定は、
前記実行経路に含まれる全ての手続のそれぞれの重要度を表す値を、当該手続において取得した前記記憶領域に格納されているトレース情報を使用して決定し、
前記全ての手続のそれぞれの重要度を表す値の加重和を用いて前記実行経路の前記重要度を決定することを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 3,
The determination of the new importance is
A value representing the importance of each of the procedures included in the execution path is determined using the trace information stored in the storage area acquired in the procedure,
A trace information acquisition method, wherein the importance of the execution path is determined using a weighted sum of values representing importance of all the procedures. - 請求項1に記載のトレース情報取得方法であって、
前記複数の手続は、前記他の手続よりも高い重要度を有し、当該他の手続により呼び出された第1の手続を含み、
前記新たな重要度の前記決定は、予め定められた条件に従って前記他の手続の重要度を高くすることを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 1,
The plurality of procedures include a first procedure having a higher importance than the other procedures and called by the other procedures;
The trace information acquisition method according to claim 1, wherein the determination of the new importance level increases the importance level of the other procedure according to a predetermined condition. - 請求項5に記載のトレース情報取得方法であって、
前記実行経路において、前記予め定められた条件に従って、呼び出し先手続よりも重要度が低い呼び出し元手続の重要度を、順次、高くすることを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 5,
A trace information acquisition method characterized by sequentially increasing the importance of a caller procedure having a lower importance than that of a callee procedure in the execution path according to the predetermined condition. - 請求項6に記載のトレース情報取得方法であって、
前記予め定められた条件は、前記呼び出し元手続による前記呼び出し先手続の呼び出し回数が規定数に達していることを含むことを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 6,
The predetermined condition includes that the number of calls of the callee procedure by the caller procedure reaches a specified number. - 請求項1に記載のトレース情報取得方法であって、
前記プログラム実行における複数の実行経路における実行経路及び当該実行経路の重要度を指定する、実行経路重要度指定情報を記憶領域に格納し、
前記実行経路重要度指定情報を参照して、前記指定された実行経路の手続において取得するトレース情報の種類を、前記指定された重要度に従って決定することを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 1,
Storing execution path importance designation information for designating an execution path in a plurality of execution paths and importance of the execution path in the program execution in a storage area;
A trace information acquisition method, wherein the type of trace information acquired in the specified execution path procedure is determined according to the specified importance level with reference to the execution path importance level specification information. - 請求項1に記載のトレース情報取得方法であって、
前記プログラム実行においてトレース情報を取得する範囲を指定する取得範囲指定情報を記憶領域に格納し、
前記取得範囲指定情報を参照して、前記指定された範囲に限定してトレース情報を取得することを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 1,
Storing acquisition range specification information for specifying a range for acquiring trace information in the program execution in a storage area;
A trace information acquisition method for acquiring trace information limited to the specified range with reference to the acquisition range specification information. - 請求項1に記載のトレース情報取得方法であって、
前記更新した種類のトレース情報の取得結果を表示装置において表示することを特徴とするトレース情報取得方法。 The trace information acquisition method according to claim 1,
A trace information acquisition method, comprising: displaying an update result of the updated type of trace information on a display device. - コンピュータによるプログラムの実行においてトレース情報を取得するコンピュータシステムであって、
前記プログラムの実行おける実行経路に含まれる複数の手続のそれぞれにおいて、当該手続に対して設定されている種類のトレース情報を取得するトレース情報取得部と、
取得した前記トレース情報を格納するトレース情報記憶領域と、
前記複数の手続に含まれる手続の重要度を前記記憶領域に格納されているトレース情報を使用して決定し、当該決定した重要度を使用して前記複数の手続に含まれる他の手続において取得するトレース情報の種類を決める重要度を決定する重要度決定部と、
前記決定したトレース情報の種類を決める重要度に従って、前記他の手続において取得するトレース情報の種類を更新する取得トレース情報決定部と、を有することを特徴とするコンピュータシステム。 A computer system for acquiring trace information in the execution of a program by a computer,
In each of a plurality of procedures included in the execution path in the execution of the program, a trace information acquisition unit that acquires the type of trace information set for the procedure;
A trace information storage area for storing the acquired trace information;
The importance level of the procedures included in the plurality of procedures is determined using the trace information stored in the storage area, and acquired in the other procedures included in the plurality of procedures using the determined importance level. An importance determination unit that determines the importance of determining the type of trace information to be performed,
A computer system comprising: an acquired trace information determination unit that updates a type of trace information acquired in the other procedure according to an importance level for determining the determined type of trace information. - 請求項11に記載のコンピュータシステムであって、
前記重要度決定部は、
前記複数の手続に含まれるそれぞれの手続の重要度を前記記憶領域に格納されているトレース情報を使用して決定し、
前記実行経路の重要度を決定し、
前記実行経路の前記重要度を、前記他の手続において取得するトレース情報の種類を決める前記新たな重要度と決定することを特徴とするコンピュータシステム。 12. A computer system according to claim 11, comprising:
The importance determining unit
Determining the importance of each procedure included in the plurality of procedures using the trace information stored in the storage area;
Determining the importance of the execution path;
The computer system, wherein the importance level of the execution path is determined as the new importance level that determines the type of trace information acquired in the other procedure. - 請求項11に記載のコンピュータシステムであって、
前記重要度決定部は、
前記実行経路に含まれる第1の手続の重要度を、前記記憶領域に格納されている当該手続におけるトレース情報を使用して決定し、
予め定められた条件に従って、前記実行経路において前記第1の手続を呼び出し当該第1の手続よりも重要度が低い前記他の手続の重要度を高くすることを特徴とするコンピュータシステム。 12. A computer system according to claim 11, comprising:
The importance determining unit
Determining the importance of the first procedure included in the execution path using the trace information in the procedure stored in the storage area;
A computer system characterized in that, according to a predetermined condition, the first procedure is called in the execution path to increase the importance of the other procedure having a lower importance than the first procedure. - プログラムを実行するコンピュータを含むコンピュータシステムに、前記プログラムの実行におけるトレース情報を取得する処理を実行させるプログラムであって、前記処理は、
前記プログラムの実行における実行経路に含まれる複数の手続のそれぞれにおいて、当該手続に対して設定されている種類のトレース情報を取得し、
取得した前記トレース情報を記憶領域に格納し、
前記複数の手続のそれぞれの重要度を、前記記憶領域に格納されているトレース情報を用いて決定し、
前記複数の手続に含まれる手続の重要度を用いて、前記複数の手続に含まれる他の手続おいて取得するトレース情報の種類を決める新たな重要度を決定し、
前記決定したトレース情報の種類を決める新たな重要度に従って、前記他の手続において取得するトレース情報の種類を更新し、
前記他の手続の実行において、前記更新した種類のトレース情報を取得することを含むことを特徴とするプログラム。 A program that causes a computer system including a computer that executes a program to execute processing for acquiring trace information in the execution of the program,
In each of a plurality of procedures included in the execution path in the execution of the program, obtain the type of trace information set for the procedure,
Store the acquired trace information in a storage area,
Determining the importance of each of the plurality of procedures using trace information stored in the storage area;
Using the importance of the procedures included in the plurality of procedures, determine a new importance that determines the type of trace information acquired in other procedures included in the plurality of procedures,
According to the new importance determining the type of the determined trace information, update the type of trace information acquired in the other procedure,
In the execution of the other procedure, the program includes obtaining the updated type of trace information. - 請求項14に記載のプログラムであって、
前記新たな重要度の前記決定は、
前記決定した前記複数の手続のそれぞれの重要度を用いて、前記実行経路の重要度を決定し、
前記実行経路の前記重要度を、前記他の手続において取得するトレース情報の種類を決める前記新たな重要度と決定することを特徴とするプログラム。 The program according to claim 14, wherein
The determination of the new importance is
Using the determined importance of each of the plurality of procedures, determine the importance of the execution path,
The program which determines the said importance of the said execution path | route as the said new importance which determines the kind of trace information acquired in the said another procedure.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011028941 | 2011-02-14 | ||
JP2011-028941 | 2011-02-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012111167A1 true WO2012111167A1 (en) | 2012-08-23 |
Family
ID=46672126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/053799 WO2012111167A1 (en) | 2011-02-14 | 2011-02-22 | Trace information acquisition method, computer system, and program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2012111167A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014049056A (en) * | 2012-09-04 | 2014-03-17 | Fujitsu Ltd | Information processing device, log output method, and log output program |
WO2016194673A1 (en) * | 2015-05-29 | 2016-12-08 | 日立オートモティブシステムズ株式会社 | Log saving condition generating device and log saving condition generating method |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163129A (en) * | 2000-11-27 | 2002-06-07 | Hitachi Ltd | Log level defining method and storage medium for program realizing the method |
JP2007058265A (en) * | 2005-08-22 | 2007-03-08 | Hitachi Software Eng Co Ltd | Log output controller and log output control program |
JP2010066801A (en) * | 2008-09-08 | 2010-03-25 | Nec Corp | Log recording system, module monitoring means, trace log managing means, recording method, program, and storage medium |
-
2011
- 2011-02-22 WO PCT/JP2011/053799 patent/WO2012111167A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002163129A (en) * | 2000-11-27 | 2002-06-07 | Hitachi Ltd | Log level defining method and storage medium for program realizing the method |
JP2007058265A (en) * | 2005-08-22 | 2007-03-08 | Hitachi Software Eng Co Ltd | Log output controller and log output control program |
JP2010066801A (en) * | 2008-09-08 | 2010-03-25 | Nec Corp | Log recording system, module monitoring means, trace log managing means, recording method, program, and storage medium |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014049056A (en) * | 2012-09-04 | 2014-03-17 | Fujitsu Ltd | Information processing device, log output method, and log output program |
WO2016194673A1 (en) * | 2015-05-29 | 2016-12-08 | 日立オートモティブシステムズ株式会社 | Log saving condition generating device and log saving condition generating method |
JP2016224646A (en) * | 2015-05-29 | 2016-12-28 | 日立オートモティブシステムズ株式会社 | Log storage condition generation apparatus and log storage condition generation method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10896117B2 (en) | Application instrumentation code extension | |
US20230094191A1 (en) | Scalable execution tracing for large program codebases | |
US10635570B2 (en) | Memory leak profiling events | |
US8464221B2 (en) | Visualization tool for system tracing infrastructure events | |
KR101705265B1 (en) | Detection of method calls to streamline diagnosis of custom code through dynamic instrumentation | |
JP5705084B2 (en) | 2-pass automatic application measurement | |
US11455230B2 (en) | Event specific log file generation | |
US20180024911A1 (en) | Software code debugger for quick detection of error root causes | |
CN106326067B (en) | A kind of method and device that cpu performance is monitored under pressure test | |
JP5989097B2 (en) | Registration and execution of highly parallel processing tasks | |
US8631280B2 (en) | Method of measuring and diagnosing misbehaviors of software components and resources | |
US20110016452A1 (en) | Method and system for identifying regression test cases for a software | |
JP6179331B2 (en) | Log output condition setting program, apparatus, and method | |
JP2019053729A (en) | Test method and test apparatus of smart contract | |
US20080162888A1 (en) | Differential comparison system and method | |
US10365905B1 (en) | Systems and methods for evaluating application performance changes via comparative call graphs | |
JP2007316905A (en) | Computer system and method for monitoring application program | |
US20140067886A1 (en) | Information processing apparatus, method of outputting log, and recording medium | |
CN113778849A (en) | Method, apparatus, device and storage medium for testing code | |
US20110321001A1 (en) | Visualization of runtime analysis across dynamic boundaries | |
US9064042B2 (en) | Instrumenting computer program code by merging template and target code methods | |
WO2012111167A1 (en) | Trace information acquisition method, computer system, and program | |
JP2019074966A (en) | Sql sentence extraction device, sql sentence extraction method, and program | |
CN110297639B (en) | Method and apparatus for detecting code | |
US10496524B2 (en) | Separating test coverage in software processes using shared memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11858784 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11858784 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |