Monitoring memory accesses for computer programs
First Claim
Patent Images
1. A computer-implemented method of monitoring memory accesses for a computer program including a plurality of processes, the computer-implemented method comprising:
- receiving input to monitor memory accesses to a memory region that is shared by the plurality of processes included in the computer program;
directing each of the plurality of processes to monitor memory accesses to the memory region;
monitoring memory accesses to the memory region using each of the plurality of processes, wherein each of the plurality of processes performs the monitoring without using a process external to the computer program;
writing to a log of memory accesses to the memory region by the plurality of processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed; and
setting a configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques for monitoring memory accesses for computer programs are provided. A user can instruct a computer program to have one of more of its processes monitor memory accesses to a memory region. As memory accesses to the memory region occur, a log can be created that includes information concerning the memory accesses. The log can be analyzed in order to debug memory access bugs. Additionally, new processes can be spawned that monitor memory accesses in a way that is similar to existing processes.
-
Citations
43 Claims
-
1. A computer-implemented method of monitoring memory accesses for a computer program including a plurality of processes, the computer-implemented method comprising:
-
receiving input to monitor memory accesses to a memory region that is shared by the plurality of processes included in the computer program; directing each of the plurality of processes to monitor memory accesses to the memory region; monitoring memory accesses to the memory region using each of the plurality of processes, wherein each of the plurality of processes performs the monitoring without using a process external to the computer program; writing to a log of memory accesses to the memory region by the plurality of processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed; and setting a configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 40, 42, 43)
-
-
13. A computer program product including a plurality of processes, the computer program product being stored on a computer readable storage medium, comprising:
-
computer code that generates an interface that receives input to monitor a shared memory region and directs the plurality of processes to monitor the shared memory region without using a process external to the computer program, wherein the interface allows setting of a configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions during monitoring of the shared memory region; and computer code that causes writing to a log of memory accesses to the memory region by the plurality of processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed.
-
-
14. A computer program product that monitors memory accesses for a computer program including a plurality of processes, comprising:
-
computer code that receives input to monitor memory accesses to a shared memory region; computer code that directs each of the plurality of processes to monitor memory accesses to the shared memory region; computer code that causes each of the plurality of processes to monitor memory accesses to the shared memory region, wherein each of the plurality of processes monitors the memory accesses without using a process external to the computer program; computer code that causes writing to a log of memory accesses to the memory region by the plurality of processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed; computer code that causes setting a configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions; and a computer readable storage medium that stores the computer codes. - View Dependent Claims (15)
-
-
16. A computer-implemented method of monitoring memory accesses for a database program including a plurality of processes, the computer-implemented method comprising:
-
receiving input that specifies that each of the plurality of processes is to monitor memory accesses to a shared memory region; directing each of the plurality of processes to monitor memory accesses to the shared memory region, wherein each of the plurality of processes monitors memory accesses the shared memory region without using a process external to the database program; writing to a log of memory accesses to the memory region by the plurality of processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed; setting a configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions; and spawning a new process, wherein the new process is also directed to monitor memory accesses to the shared memory region. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 41)
-
-
26. A computer system, comprising:
-
a computer program including a plurality of processes, the computer program being embodied on a computer-readable storage medium; and an interface that receives input to monitor memory accesses to a shared memory region, directs the plurality of processes to monitor memory accesses to the shared memory region without using a process external to the computer program, and directs a new process to monitor memory accesses to the shared memory region without using a process external to the computer program, wherein the interface allows setting of a first configuration parameter to control a number of functions that will be recorded during monitoring of the shared memory region, setting of a second configuration parameter to monitor memory accesses by the new process, setting of a third configuration parameter to specify monitoring of all processes including processes spawned after receiving a command to initiate monitoring memory accesses to the shared memory region, and setting of a fourth configuration parameter to specify monitoring of all processes existing at a time when receiving the command to initiate monitoring memory accesses to the shared memory region, but not processes spawned after the time of the command.
-
-
27. A computer program product that monitors memory accesses for a computer program including a plurality of processes, comprising:
-
computer code that receives input to monitor memory accesses to a shared memory region; computer code that directs each of the plurality of processes to monitor memory accesses to the shared memory region; computer code that causes each of the plurality of processes to monitor memory accesses to the shared memory region; computer code that causes writing to a log of memory accesses to the memory region by the plurality of processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed; computer code that causes setting a configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions; computer code that spawns a new process of the database program, wherein the new process of the computer program is not directed to monitor memory accesses to the shared memory region; and a computer readable storage medium that stores the computer codes. - View Dependent Claims (28)
-
-
29. A computer-implemented method of monitoring memory accesses for a computer program, comprising:
-
providing a function in computer code that when called during run time of the computer program will cause memory accesses to a memory region to be monitored, wherein the function specifies processes included in the computer program will monitor memory accesses to the memory region, the memory region being shared by the processes; executing the function during run time of the computer program to monitor memory accesses to the memory region by selected processes, wherein monitoring memory accesses to the memory region comprises writing to a log of memory accesses to the memory region by the selected processes, wherein each entry in the log comprises an address of the memory region being accessed, a value stored at the address of the memory region being accessed, an identifier of a process performing accessing of the address of the memory region being accessed, and a listing of a stack of functions leading to accessing of the address of the memory region being accessed; and allowing setting of a first configuration parameter to control a number of functions that will be recorded for each entry of the log in the listing of the stack of functions. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
Specification