Applying just Distort->Twirl directly does not cause the program to
fail. The same sequence of operations does not fail on Win95.
While Etch will work properly on executables and DLLs that have no symbol
information, Etch can take advantage of symbol information when it is
available (for example, to permit user-specified selective etching on
a per-procedure basis). There are also calls in the Etch tool API that
have improved functionality when symbol information is available (see the
Etch Tool Writer's API for details).
Details: there is some code in the GetSystemInfo() routine
that checks the NT version number using the GetProcessVersion()
routine, compares it with 3.51, and clears the flags we're interested
in if our version number is less than 3.51.
Programs that work, but with some attention
Programs that we know not to work
DLLs that we know not to work
Etch Instrumentation Tool API Problems
Debug Symbol Information
Etch currently supports debugging information in Codeview version
"NB09" format. This particular debug format can be generated by recent
versions of Microsoft compilers. for example, MS Visual C/C++ versions
2.0, 4.0, and 4.2 all generate the Codeview NB09 debugging format when
the executable or DLL was linked with the "/debug /pdb:none" flags.
Known problems with Etch tools
Code Layout Optimization Tools
Instrumentation Coverage (Exact - etched)
Instrumentation Coverage (Exact)
This tool has been disabled (from Visual Etch) and removed from the
list of tools due to bugs.
Dll Call Tracer
Only detects calls into implicit modules (the ones that are loaded
automatically by NT, not the ones loaded with LoadLibrary).
Hardware Performance Counters
Some programs using the Hardware Performance counters will fail to
properly initialize the hardware counters within the Etch runtime.
For example, mpegply.exe fails with the instrcheck tool. The
reason is that mpegply has a field in the executable header that
tells the operating system to emulate NT V3.1 behavior. The etch
runtime code that initializes the counters requires the behavior
of NT V3.51 or greater. This conflict causes the tool to fail.
Call Graph Profiler
The emacs browsing mode is currently disabled because the call graph profiler
output format has changed.