Contents

Legal Notices

Chapter 1:
  Quick Start


Chapter 2:
  Introduction and Installation


Chapter 3:
  About Memory Analysis


Chapter 4:
  Finding Memory Leaks


Chapter 5:
  Finding Memory Errors


Chapter 6:
  Startup Options


Chapter 7:
  Viewing Error Messages


Chapter 8:
  Viewing Source Code


Chapter 9:
  Tips and Techniques


Chapter 10:
  Troubleshooting


Chapter 11:
  Obtaining Support


Latest ZeroFault distribution level: 590s.

New Features of ZeroFault distributions.

v590

590j 'universal' install. great for use over nfs/afs/dfs/smb etc.

590h FULL 64Bit, less noise, more information, misc fixes.

v585

585c More speed, misc fixes.

v577

577d Floating Point fixes. More reporting detail.

v555

555s Better detail data: Error timing, heap summary, threadID's.

555o AIX7.1 Support

555n Threading and locking enhancements. Reduced false positives.

More Detail Data

5.00a AIX6.1 Support and reduced false positives.
4.87 The analysis data provided by ZeroFault contains expanded detail (compared to prior distributions).

Logical Heaps (4.50)

This revision of ZeroFault introduces a new feature: Logical Heaps
While running ZeroFault on your application, you may obtain a new heap by using the "New Heap" button in the GUI or via sending signal 55 to your application. When ZF receives a request for a new heap, it creates a new heap and freezes any additions of new malloc blocks to the prior heap(s). New malloc blocks are always added to the highest number heap. In this way, old heaps cannot grow further and can only decrease in size as your application frees blocks. The ZF GUI allows you to select via the "Heaps" menu, any existing heap in your application. Once selected, other leak related facilities such as "Find Leaks", "Show Heap", and "Take Snapshot" are constrained to the heap of interest.
Use of this facility does not fragment your application's heap. ZF tracks the items in each logical heap for you and avoids using separate physical heaps.
Example of use:

Assume that you have an application with a leak problem. Further assume that it takes days for your application to begin showing signs of leaks. Problem: by the time the application is ready for leak analysis, ten's of thousands malloced blocks are present in the heap. "Find Leaks" becomes slow because of the exhaustive nature of its Garbage Collection. "Show Heap" produces a window that has too many entries to analyze. Solution: Use a new heap or heaps. Implementation: start ZF with the -ZSquelch option. After your application is running and stable, click on "New Heap" to obtain another heap. Periodically obtain new heaps as needed to constrain malloc collection into managable units. It is best to do this after allowing your application sufficient time to begin exhibiting leak behavior. Disable the MessageFilter->Squelch option and begin analysis obtaining new heaps to collect malloc data that is associated with new user actions or new events. Select higher numbered heaps to perform automatic leak detection with "Find Leaks".

Summary: the focus of this release is to present new features that help with the data overload problem caused by the need to use ZF on long-running applications. Over a long time period, substantial quantities of memory errors and/or malloc'ed blocks may have accumulated hindering analysis and possibly overloading the GUI from a memory consumption perspective. Two features are introduced to manage data overloading from ZF's reported memory errors in the GUI. They are the command line options: -ZS and -ZD, also known as: -ZSquelch and
-ZDiscard.Filtered.Messages. It is now possible, with these options to start the GUI in a way that prevents automatic accumulation of error messages. These options are subsequently disabled by user action from the MessageFilter menu options in the GUI, when the user is prepared to begin analyzing incoming messages. The "Logical Heap" option is introduced to help focus leak related user actions in the GUI to malloc'ed blocks of interest. The feature is implemented via the "New Heap" button and the "Heaps" menu in the GUI and with the "New Heap" signaling method outside of the GUI.

 

© Copyright 2013 The ZeroFault Group, LLC. All rights reserved. All logos and trademarks are property of their respective owners.