Using Fixups
Fixups uses the Windows NT profiling facility to monitor and isolate unaligned memory accesses, or faults. Each time an unaligned access occurs, the tool narrows its focus on the location of the fault. Because this is a statistical detection method, it takes a few seconds to isolate repeated faults at the same location and sporadic faults cannot be completely isolated.
Fixups.exe requires Windows NT 4.0 or later. The following is its command line syntax:
fixups [-f file] [-tnum] [-a] [-snum] [-k] [-d]
- /?
- List available options.
- -ffile
- Output file that receives all alignment fault locations.
- -tnum
- Update interval, in milliseconds. The default value is 500 and the minimum value is 100.
- -a
- Display all profile ranges. The default is to show only the ranges in images, or with faults.
- -snum
- Number of faults after which to split the profile range The default is 1.
- -k
- Keep all profile ranges active. The default is to deactivate a range after 60 no-hit samples.
- -d
- Send alignment fault locations to the debugger.
Hints for Using Fixups
- It is recommended that you run Fixups with the default options. However, you can use the /ffile option to save the locations of faults to a file.
- Double-click a line in the main display to see more detail about a process.
- Items are black when they have no alignment faults.
- Items are blue when they have at least one alignment fault.
- A detail item is red when the alignment fault location has been narrowed to a single instruction.
- A detail item is gray if there have not been any alignment faults in its range for 30 seconds. This indicates the item's profiler is turned off to minimize the system resources used. All items are turned back on if Fixups misses any alignment fault counts. The total process item on the main display is never turned off and provides the number of faults that should show up in the active detail profiles.
- The total for a detail view may not match the total for that process in the main window because detail profiles are not set up until alignment faults start occurring or some counts are lost as profiles are split to isolate alignment faults.
- If a process exits while being monitored, Fixups continues to display its data (shown in white) if any alignment faults were detected. With this feature, you can leave Fixups running in minimized form and review the collected data later.
- Processes are sorted by creation time. Processes that have exited with at least one alignment fault are at the end.
- Fixups uses dbghelp.dll for symbol lookup. You will get much better diagnostic information if the _NT_SYMBOL_PATH environment variable specifies a path to valid symbols for both your application and the operating system.