System, information processing program, and information processing method

JP2026016753A5Pending Publication Date: 2026-05-08帝都久利寿 +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
帝都久利寿
Filing Date
2025-11-05
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

Existing technologies, such as Japanese Patent Laid-Open Publication No. 2001-243089, fail to provide a comprehensive method for analyzing the cause of faults in programs using the internal state of a test program after it has been stopped.

Method used

A programming support system and method that includes a terminal device with a program development environment, an acquiring means for identifying malfunction events, and a determining means to determine an address using a hash function, allowing access to a storage unit containing information associated with each malfunction event, enabling users to easily retrieve solutions from a knowledge base.

Benefits of technology

Facilitates programming support for a wide variety of users by enabling easy access to solutions for program errors, allowing users to aggregate and update knowledge on common defects, thereby enhancing debugging efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a solution for supporting programming of various users.SOLUTION: The program support system includes one or a plurality of terminal and storage means accessible from the one or the plurality of terminal. The terminal includes a providing means for providing a program development environment, an acquiring means for acquiring information indicating the contents of a failure event occurring in the program, and a determining means for determining an address from the information indicating the contents of the failure event according to a predetermined rule. The storage means holds information for each failure event in association with an address determined from information indicating the content of each failure event.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a programming support system and a programming support method. [Background technology]

[0002] Recent advances in information and communication technology (ICT) have been remarkable, and devices connected to networks such as the Internet are no longer limited to traditional information processing devices such as personal computers and smartphones, but are now expanding to include a wide variety of things. This technological trend is known as the "Internet of Things" (IoT), and a variety of technologies and services are being proposed and put into practical use. In the future, it is expected that billions of people and tens of billions or even trillions of devices on Earth will be connected simultaneously. To realize such a networked world, it is necessary to provide solutions that enable simpler, safer, and more free connections.

[0003] As these devices become more intelligent, it becomes necessary to create various types of programs. On the other hand, when creating programs, it is necessary to correct various errors that exist in the programs (so-called debugging). As a technology for correcting errors contained in such programs, for example, Japanese Patent Laid-Open Publication No. 2001-243089 (Patent Document 1) discloses an inspection device that makes it easy to identify the cause of an abnormality in software under test. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2001-243089 Summary of the Invention [Problem to be solved by the invention]

[0005] The above-mentioned Patent Document 1 merely discloses a method for analyzing the cause of a fault by obtaining the internal state of a test program after the test program has been stopped, but does not provide any teaching as to how to analyze the cause of a fault using the obtained internal state.

[0006] The present disclosure provides a solution that aids in programming for a wide variety of users. [Means for solving the problem]

[0007] A programming support system according to an embodiment of the present disclosure includes one or more terminal devices and a storage means accessible from the one or more terminal devices. The terminal device includes a providing means for providing a program development environment, an acquiring means for acquiring information indicating the content of a malfunction event that has occurred in the program, and a determining means for determining an address from the information indicating the content of the malfunction event according to a predetermined rule. The storing means stores information for each malfunction event in association with an address determined from the information indicating the content of each malfunction event.

[0008] The determining means may input information indicating the content of the malfunction event into a hash function to determine an address of a predetermined length.

[0009] The information for each malfunction event stored in the storage means may be updateable by multiple users.

[0010] The acquisition method is to use the backtrace or stack trace function to obtain the details of the malfunction. Alternatively, information indicating the above may be acquired.

[0011] The malfunction that occurs in the program may include at least one of a program run-time error and a program compilation error.

[0012] A program support method according to another aspect of the present disclosure includes the steps of: acquiring information indicating the content of a malfunction that has occurred in any program in a program development environment; determining an address from the information indicating the content of the malfunction according to predetermined rules; and accessing information on the corresponding malfunction that is stored in association with the address based on the determined address. [Effects of the Invention]

[0013] According to the present disclosure, it is possible to support programming for a wide variety of users. [Brief explanation of the drawings]

[0014] [Figure 1] 1 is a schematic diagram showing an example of an overall configuration of a programming support system according to an embodiment of the present invention; [Figure 2] FIG. 2 is a schematic diagram showing an example of a hardware configuration of a terminal device included in the programming support system according to the present embodiment. [Figure 3] FIG. 2 is a diagram for illustrating programming and backtracing in the programming support system according to the present embodiment. [Figure 4] FIG. 2 is a schematic diagram for illustrating an overview of processing executed in the programming support system according to the present embodiment. [Figure 5] FIG. 2 is a diagram showing an example of a user interface screen of an integrated development environment provided in the programming support system according to the present embodiment. [Figure 6] FIG. 10 is a diagram showing an example of a user interface screen showing an example of information provided by a server in the programming support system according to the present embodiment. [Figure 7] FIG. 2 is a diagram showing an example of an address format used in the programming support system according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0015] Embodiments according to the present disclosure will be described in detail with reference to the drawings. Note that the same or corresponding parts in the drawings are denoted by the same reference numerals, and their description will not be repeated.

[0016] <A. Overall Configuration of Programming Support System 1> First, the overall configuration of the programming support system 1 according to the present embodiment will be described. The programming support system 1 provides information for supporting programming to one or more users (programmers).

[0017] FIG. 1 is a schematic diagram showing an example of the overall configuration of the programming support system 1 according to the present embodiment. Referring to FIG. 1, the programming support system 1 includes a server 200 composed of one or more computers, and one or more terminal devices 100 that can access the server 200 via a network 2.

[0018] An integrated development environment (IDE: Integrated Development Environment) is provided for each of the terminal devices 100, and it is assumed that the user can create an arbitrary program on the integrated development environment.

[0019] The server 200 corresponds to a storage unit that holds, manages, and provides information related to program creation on the integrated development environment of the terminal device 100. That is, the server 200 has a storage unit accessible from one or more terminal devices 100. More specifically, the server 200 holds a knowledge base 250 for each defect event related to program creation, and performs operations such as providing the requested information and updating the information in response to access from any of the terminal devices 100. Access to the knowledge base 250 is realized by a unique address associated with each event.

[0020] For example, assume that an error occurs when compiling some program (source code) created on the integrated development environment of the terminal device 100, or when executing the compiled program (object format). In such a case, information indicating the content of the occurred malfunction event (for example, error context obtained by backtrace or the like) is acquired, and based on this acquired information, an address for referring to the knowledge base 250 regarding the occurred malfunction event is determined.

[0021] On the other hand, the server 200 holds information for each malfunction event (knowledge base 250) in association with an address determined from the information indicating the content of each malfunction event. Therefore, the user can easily access the information in the corresponding knowledge base 250 for resolving the occurred malfunction event based on the determined address.

[0022] The information indicating the content of the occurred malfunction event (for example, a message obtained by backtrace) is information unique to the malfunction event, and by using such unique information, it is possible to uniquely identify what information is required. For example, when a plurality of users encounter the same malfunction event, substantially the same information is output, so an address for accessing the necessary information can be determined using the output error context or the like as a key.

[0023] As shown in FIG. 1, in the programming support system 1, in the program development environment, a process of acquiring information indicating the content of a malfunction event that has occurred in any program, a process of determining an address from the information indicating the content of the malfunction event according to a predetermined rule, and a process of accessing the information of the corresponding malfunction event held in association with the determined address are executed.

[0024] <B. Hardware Configuration Example> Next, a hardware configuration example of the devices included in the programming support system 1 according to the present embodiment will be described.

[0025] (b1: terminal device 100) The terminal device 100 is typically implemented as a general-purpose computer.

[0026] 2 is a schematic diagram showing an example of a hardware configuration of terminal device 100 included in programming support system 1 according to the present embodiment. Referring to Fig. 2, terminal device 100 includes, as main components, a processor 102, a main memory 104, an input unit 106, a display 108, a hard disk 110, and a network interface 118. These components are connected via an internal bus 120.

[0027] The processor 102 is configured by, for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). A plurality of processors 102 may be provided. , a processor 102 having multiple cores may be employed.

[0028] The main memory 104 is configured with a volatile storage device such as a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The hard disk 110 may be replaced with a non-volatile memory such as a solid state drive (SSD) or a flash memory. A volatile storage device may also be used. A designated program from among the programs stored on the hard disk 110 is loaded onto the main memory 104, and the processor 102 sequentially executes computer-readable instructions contained in the program loaded onto the main memory 104, thereby realizing various functions as will be described later.

[0029] Typically, hard disk 110 stores a source program 112 created arbitrarily by the user, a development program 114 for realizing an integrated development environment, and an access program 116 for realizing access to server 200 as described below. Development program 114 includes a module that provides a program development environment, and access program 116 includes a module that determines an address from information indicating the content of a malfunction event according to predetermined rules.

[0030] The input unit 106 accepts input operations from a user who operates the terminal device 100. The input unit 106 may be, for example, a keyboard, a mouse, a touch panel arranged on a display device, or operation buttons arranged on the housing of the terminal device 100.

[0031] The display 108 displays the processing results of the processor 102. The display 108 may be, for example, an LCD (Liquid Crystal Display) or an organic EL (Electro-Luminescence) display.

[0032] The network interface 118 is responsible for communication with the server 200 via the network 2. The network interface 118 includes, for example, a wired connection terminal such as an Ethernet (registered trademark) port, a Universal Serial Bus (USB) port, a serial port such as IEEE1394, or a legacy parallel port. Alternatively, the network interface 118 may include a processing circuit and an antenna for wireless communication with a device, a router, a mobile base station, or the like. Wireless communication supported by the network interface 118 includes, for example, Wi-Fi (registered trademark), Bluetooth (registered trademark), ZigBee (registered trademark), LPWA (Low Power Wide Area), GSM (registered trademark), and the like. ), W-CDMA, CDMA200, LTE (Long Term Evolution), 5th generation mobile communications It may be either a 5G or 6G communication system.

[0033] All or part of the terminal device 100 may be implemented by a hardwired device such as an ASIC (Application Specific Integrated Circuit) incorporating a circuit corresponding to a computer-readable instruction. Alternatively, it may be implemented using circuitry corresponding to computer-readable instructions on a field-programmable gate array (FPGA). It may also be realized by appropriately combining the processor 102, a main memory, an ASIC, an FPGA, etc.

[0034] Terminal device 100 may further include a component for reading development program 114 and access program 116 (computer-readable instructions) from non-transitory media that stores the programs. The media may be, for example, optical media such as a DVD (Digital Versatile Disc) or semiconductor media such as a USB memory.

[0035] The development program 114 and the access program 116 may not only be installed in the terminal device 100 via media, but may also be provided from a distribution server on a network.

[0036] (b2: Server 200) Server 200 is also typically implemented by a general-purpose computer. The basic hardware configuration of server 200 is the same as that shown in FIG. 2, and therefore detailed description will not be repeated. However, server 200 is often configured with multiple computers, and in such a configuration, a mechanism is employed that allows data to be shared between the computers. The number of computers configuring server 200 may be increased or decreased depending on the load. Furthermore, multiple computers located in multiple geographically separated locations may be configured to virtually operate as a single server 200.

[0037] <C.プログラミングおよびバックトレース> 3A and 3B are diagrams for explaining programming and backtracing in programming support system 1 according to this embodiment. Referring to Fig. 3A, it is assumed that a user creates source program 112, compiles the created source program 112, and then executes the generated object program, whereupon a defect event (typically, a runtime error) occurs in a specific portion of code (hereinafter, such code will also be referred to as "defect code 150").

[0038] When such a runtime error occurs, an error context 162 such as that shown in FIG. 3B can be acquired by executing a backtrace function 160. The backtrace function 160 is a function for acquiring information indicating the details of the malfunction that has occurred. The backtrace function 160 may be provided as part of a debugging function included in an integrated development environment. Note that the backtrace function may also be called a stack trace instead of a backtrace. Furthermore, functions such as a memory dump and a core dump may also be used.

[0039] In this way, the terminal device 100 has a backtrace or stack trace function as a function for acquiring information indicating the content of a malfunction that has occurred in a program. That is, the terminal device 100 acquires information indicating the content of a malfunction by using the backtrace or stack trace function.

[0040] Similarly, information indicating the content of the occurred defect (error context 162) can be acquired when a defect (typically, a compilation error) occurs when compiling the source program 112. In this case, the function of outputting information indicating the content of the occurred defect may be included in a compiler, a linker, or the like included in the integrated development environment.

[0041] In the programming support system 1 according to the present embodiment, the malfunction event that has occurred in the program may include at least one of a runtime error of the program and a compilation error of the program.

[0042] <D. Outline of Processing> Next, the outline of the processing executed in the programming support system 1 will be described. FIG. 4 is a schematic diagram for explaining the outline of the processing executed in the programming support system 1 according to the present embodiment. Referring to FIG. 4, it is assumed that some malfunction event (runtime error or compilation error) has occurred in the source program 112 created by the user, and an error context 162 has been generated.

[0043] The error context 162 is input to a hash function 170 as an example of an address determination means, and a hash value 172 of a predetermined number of characters is output. Then, an address 174 corresponding to the malfunction event generated from the hash value 172 is determined. As the hash function 170, a known algorithm (for example, SHA512, SHA384, WHIRLPOOL etc.) can be used. In this way, by inputting the information indicating the content of the malfunction event to the hash function 170, an address of a predetermined length can be determined. Note that as the address determination means, any conversion formula or mapper may be used as long as it can map an arbitrary character string to a predetermined number of character strings.

[0044] FIG. 5 is a diagram showing an example of a user interface screen 180 of an integrated development environment provided in the programming support system 1 according to the present embodiment. Referring to FIG. 5, the user interface screen 180 includes an editor area 182 for creating and editing the source program 112, a backtrace button 184 for executing the backtrace function 160 when some malfunction event occurs, an error context display area 186 for displaying the error context obtained by the backtrace function 160, and an access button 188 for executing access to the server 200.

[0045] The user can create or edit any source program in the editor area 182. If a problem occurs during execution or compilation of the created source program, the user can press a backtrace button 184 to obtain an error context 162 for the problem that occurred and display it in an error context display area 186. The user can also debug the source program 112 while checking the content displayed in the error context display area 186.

[0046] Additionally, when the user presses access button 188, information (knowledge base 250) can be accessed to assist in debugging the malfunction that has occurred (see FIG. 6, described below).

[0047] 6 is a diagram showing an example of a user interface screen 190 showing an example of information provided by the server 200 in the programming support system 1 according to this embodiment. By pressing the access button 188 in FIG. 5, the terminal device 100 can access a specific address of the server 200. The access destination is associated with a knowledge base 250 corresponding to the malfunction event that has occurred, and the contents of the accessed knowledge base 250 are displayed on the user interface screen 190 of the terminal device 100.

[0048] Referring to FIG. 6, a user interface screen 190 displays an address 174 for referencing the target knowledge base 250 and defect information 192 contained in the knowledge base 250.

[0049] As the defect information 192 shown in FIG. 6, it may be in a form in which one or more users can arbitrarily post messages. That is, the information for each defect event held by the server 200 may be updatable by a plurality of users. For example, after a support user 194 posts a message about a specific defect event, an operation mode is assumed in which a general user 196 posts an additional message based on his or her experience.

[0050] In this way, in addition to the support entity that develops or maintains the integrated development environment, by posting the knowledge obtained by a plurality of users including general users who use the integrated development environment, the knowledge regarding a common defect event can be aggregated, and a solution to the defect event can be easily found.

[0051] <E. Address format> Next, the address format for accessing the knowledge base 250 will be described. Basically, any address format may be adopted as long as the knowledge base 250 prepared for each defect event can be accessed.

[0052] FIG. 7 is a diagram showing an example of the address format used in the programming support system 1 according to the present embodiment. As shown in FIG. 7(A), as the address format, the hash value 172 calculated from the error context 162 may be directly used as part of the address.

[0053] Alternatively, as shown in FIG. 7(B), by using the GET type command of the HTTP protocol, identification information using the hash value 172 calculated from the error context 162 may be passed to the server 200.

[0054] It is not limited to the address format shown in FIG. 7, and it may be configured to be able to access a specific knowledge base 250 corresponding to the occurred defect event in any format.

[0055] <F. Other forms> In the above description, as a typical example, a processing example of inputting all of the generated error context 162 into the hash function 170 is shown. However, the present invention is not limited to such a processing example. Among the information included in the error context 162, after excluding the information determined as an instance, the information may be input into the hash function 170. Alternatively, the part of the information determined as an instance may be padded with predetermined numbers or characters and then input into the hash function 170. By applying such preprocessing, for substantially the same failure event, the same address can be determined and the sharing of information can be facilitated.

[0056] In the above description, a so-called server-client model including one or more terminal devices 100 and a server 200 is exemplified. However, a so-called serverless configuration in which information is shared between the terminal devices 100 may be adopted. Even in this case, the address determined using the information indicating the content of the occurred failure event can be used as a key (identification information) for information sharing. In a serverless configuration, the storage unit that holds, manages, and provides information related to program creation on the integrated development environment of the terminal device 100 will be substantially provided in any one of the terminal devices 100 or a plurality of terminal devices 100.

[0057] <G. Advantages> According to the programming support system 1 according to the present embodiment, when a plurality of users create various programs, it is possible to easily access solutions to failure events that may occur. Further, for substantially the same failure event, not only support-side information but also user-side information can be aggregated, enriching the knowledge base.

[0058] The disclosed embodiments should be considered as illustrative in all respects and not restrictive. The scope of the present invention is shown not by the above description but by the claims, and it is intended that all modifications within the meaning and scope equivalent to the claims are included.

Description of Reference Numerals

[0059] 1 Programming support system, 2 Network, 100 Terminal device, 102 Processor, 104 Main memory, 106 Input section, 108 Display, 110 Hard disk, 112 Source program, 114 Development program, 116 Access program, 118 Network interface, 120 Internal bus, 150 Fault code, 160 Backtrace function, 162 Error context, 170 Hash function, 172 Hash value, 174 Address, 180, 190 User interface screen, 182 Editor area, 184 Backtrace button, 186 Error context display area, 188 Access button, 192 Fault information, 194, 19 6 users, 200 servers, 250 knowledge bases.

Claims

1. A knowledge base that stores content related to the error context, which indicates the details of the malfunction that occurred in the program, A system comprising means for storing content related to a certain error context in a knowledge base, uniquely associating it with identification information based on a hash value calculated from the error context.

2. The system according to claim 1, further comprising a response means for responding to an access request specifying an address including a hash value, by responding with content stored in the knowledge base that is uniquely associated with the specified address.

3. The system according to claim 2, wherein the address is an address in a format described according to the HTTP protocol, including a hash value.

4. The system according to claim 2 or 3, further comprising means for providing a user interface screen on which one or more users can post messages in association with the aforementioned address.

5. The system according to any one of claims 1 to 4, wherein the error context is output in the program development environment by a backtrace or stack trace function.

6. The system according to any one of claims 1 to 5, wherein the malfunction event occurring in the program includes a runtime error or a compilation error of the program.

7. An information processing program, for a computer, The steps include storing content related to the error context, which indicates the details of a malfunction that occurred in the program, in a knowledge base, An information processing program that performs the steps of storing content related to a certain error context in a knowledge base, uniquely associating it with identification information based on a hash value calculated from the error context.

8. A method of information processing performed by a computer, The steps include storing content related to the error context, which indicates the details of a malfunction that occurred in the program, in a knowledge base, An information processing method comprising the steps of storing content related to a certain error context in a knowledge base, uniquely associating it with identification information based on a hash value calculated from the error context.