1. Important Tip: Install Windows Symbol package!

By installing Windows Symbol package, you can get more accurate information for the call stack. Especially for release version.

For example, MFC42.dll is MFC library from Microsoft. Since it was optimized for release version, sometimes it is hard to trace the whole call stack. But if you install the Windows Symbol Pakcage, the call stack will be very clear.

Even the package is big, we highly recommend you install it.

You can get the package from the download site of Microsoft or search from google (search "windows symbol package").

 

2. How does RuntimeChecker find out memory leak?

Once in operation, RuntimeChecker injects a DLL (RuntimeCheckerHelper.dll”) into the target 

application. The DLL monitors all of the dynamic memory actions of the target

applicationand reports them to RuntimeChecker.exe. After the target application

exits, RuntimeChecker will list all of the memory blocks that were not freed in

“memory tree” tab. As show, for each memory allocation, a call stack is shown as a

branch in the tree. The depth of call stack  can be configured.




3. How to read the text in the status bar " *** blocks memory in use"?

One block indicates one time memory allocation such as malloc, new …,

For example: “22 blocks memory in use” means that there are 22 blocks of memory are

 not released yet. It is not necessary memory leak if the target application is still running.


4. How to check the memory leak after launching or attaching RuntimeChecker to my application?

To see any the memory leak, you need to shutdown your application gracefully. 

Let the application exit by itself instead of killing it through windows the Windows

Task Manager. Click on Tab "Memory Tree", You will see the result.




5. How to track memory usage of one particular “action” of my application?

This is another unique feature of RuntimeChecker.Before doing the action; e.g. sending

 a message to the target application or hitting a button on its user interface, click "clear memory usage log

button to reset the memory usage log,

 

then click “show allocated memory” after your action.

 

The memory  tree will show all of the memory blocks allocated during this action, but yet not has been

 released.
 

6. The memory usage of my application keeps going up? But it gets freed up 

after the application exits. So, how can I find the problem with RuntimeChecker?

Ensure that you run the scenario that likely causes “memory leak” for several times. It is

even better if you can run a test driver for this purpose. Then, show the memory in use by

clicking “show allocated memory” button - with the result sorted by occurrence. As result, the memory

allocations on the top in the sorted list indicate the potential memory leakage.


7. What should I do if I just want to check the memory leak in some specific DLLs?

In the module list, check the DLLs that you are interested.

Since RuntimeChecker consumes a certain amount CPU and memory resource while monitoring the

memory allocation, check the boxes of suspicious DLLs only if the tagret application is running under

a very heavy load condition.

Note: If your EXE or DLL allocate memory through [a] special function like MyAllocation(…), which is

defined in [a specific] DLL, you [obviously] need to check [the box of] that DLL as well.


8. I got the memory leak tree, how can I save it and review it later?

Click "Export to File" button, you can save the result to a file. The extension name of the

file is .rtc

Click "Import from File" button, you can open an .rtc file and the saved result will be shown

in memory tree tab.


9. Does RuntimeChekcer support Windows Vista, Windows 7 and Windows Server 2008?

Since Windows Vista, windows 7 and Windows Server 2008 use more strict security policy,

You need to log on windows with administrator privileges, and then run your application and runtimechecker!

Another option is to start RuntimeChecker as administrator( Find RuntimeChecker.exe in file explorer,right click the file and pick "Run as Administrator")!