In Linux, mtrace is used for memory monitoring-Linux general technology-Linux programming and kernel information. The following is a detailed description. You may encounter problems such as memory overflow when writing complex programs with many pointers. Debugging is also quite tiring. In fact, there is a tool in Linux that can be used for debugging. This is Mtrace. Mtrace can detect memory allocation and leakage failures. Next, let's take a look at its usage.
There are four basic steps to debug a program using Mtrace. Some auxiliary function functions in the gnu c function library are required.
1. Include the header file in the program to be tracked, and include a function call: mtrace () at the beginning of the main () function (). Mtrace () is called at the beginning of the main function. Therefore, mtrace can trace and analyze all memory allocation and release operations after the process.
2. Define an environment variable to indicate a file. This file is used to output log information. Example:
$ Export MALLOC_TRACE = mymemory. log
3. The program runs normally. The memory allocation and release operations in the program can be recorded.
4. Use mtrace to analyze log files. For example:
$ Mtrace testmem $ MALLOC_TRACE
Note that in many embedded environments, the export command is not provided and environment variables are not recorded. Is there no way at this time? Maybe the only way is to add the environment variable to the application. The Glibc library contains the putenv function, which is used to write environment variables. For more information, see the manual.
Int putenv (char * string) [Function]
After environment variables are set. Another problem is: if the program is self-running, that is, when it is not terminated, what should I do if I want to analyze the memory in a specific place?
Look at Glibc !, Call the muntrace function, and the log file is generated. Then you can use the mtrace command to analyze the log file.
The following is an example.