Fatal code discovery errors result in modules that either can not, or
should not be etched. If these occur in an executable or DLL of
yours, you will need to mark the component as either "patch, but not
etch" or "no patch, and no etch" from the Modules menu. Please report the
failure to the developers, as it indicates a bug in Etch.
dllwalk c:\winnt\occache\ietimer.ocx
You should see the same error that you saw from Visual Etch.
Simply remove this file from the Modules list.
When your program terminates, it will write a file called
"etch-orphans.log"
in the experiment directory. If you are running from within
Visual Etch, you will be asked if you want to add the orphaned files
to the Modules list.
Note that you may see this dialog box for a DLL that you had
supplied through the Modules window, but for which you chose to "keep
original name." In this case, the dialog box, while annoying, can be
dismissed simply by saying "continue and load original."
Messages from Etch
Etch can be invoked directly from the command line, or as part of a
script running within the Visual Etch user interface. Here are some
messages that you may see when etching an executable.
Etch Invocation Errors
- Unrecognized flag x
- No target specified
- Specify one of '-t tool', or '-i inst -r runtime'
- No target executable specified.
- Target x not found
- Must provide '-app tag' on command line
- OpenInfile: CreateFileMapping failed
- OpenInfile: MapViewOfFile failed
- OpenOutfile: fopen failed
- Unable to create temporary file
- Error reading file
- Error opening x
- Error writing file
- Warning: Failed to parse debug file -- Instrumentation will ignore debug info.
Recoverable Code Discovery Errors
Code discovery is the process of distinguishing code from data in an
executable or DLL. Etch relies on a set of techniques to disambiguate
bytes; on occasion, those techniques can lead to internal
inconsistencies which are reflected during code discovery.
Often, an executable will run fine, despite problems during code
discovery.
n occurrences, only m occurrences handled
- RVA x is a legal PC, but is used as a pointer to data.
all n occurrences were handled successfully,
This indicates that the etched version of this program may not run properly.
Fatal Code Discovery Errors
- InstallBits: Out of bounds access
- Fatal error: Virtual address not in text
- Oh no, jumped to illegal inst
- Internal Etch error: tried marking byte twice.
- OpenInfile: not a PE00 executable (failure)
rva %lx not in program, rva
Warning: IndexOfSection(%lx) is before first section.,rva
Warning, can't find section for %lx, rva
Import descriptor has no thunks
Must have OriginalFirstThunk in unbound import table
Exports:: Ordinal out of bounds
Warning, no OriginalFirstThunk for x
Warning, skipping import by ordinal
- First section and headers overlap
- Changed size of original section
- Buffer: streams added out of order.
- Hope you don't mind changing section 0's VMBase from x to y
- CorrectOffsets: PointerToRelocations non-zero.
- Illegal scale n, hopefully data (pc x)
- Incorrect jump offset in REP
- Illegal width field
- RegisterOffset: r out of range
Problems with Tools
Messages from the Visual Etch User Inteface and Scripts
Cannot parse output file: <filename>. Try rerunning dllwatch.
- Warning: Table file <filename> has zero length.
- Warning: Cannot find file <filename>.
- Warning: Unable to read <filename>. [ErrorMsg]
- Warning: Attempted to SendCommand to a non-existent process.
- Warning: Cannot find key named <string>
Messages from Scripts
- Warning: No debug info for any of the files. Messages When Running Etched Program
An etched program can fail in a way that generates an error message in
the form of system or Etch dialog box.