Please enable JavaScript to view this site.

Thread Validator Help

The Diagnostic view displays all diagnostic information collected from the stub.

 

There are two subtabs. One for Diagnostic information and one for displaying any data captured from stdout and stderr.

 

Diagnostic

 

diagnostics-tab

 

 

 

Diagnostic information

 

When Thread Validator's stub is injected into the target program, it logs diagnostic information to the main window for inspection.

 

Examples of diagnostic data collected are below, and may be displayed with a message, although you may not see some of these if all is well:

 

Hooking information
 

Other information

Ordinal hook found

Hook C++ constructor / destructor

Function hook success or failure

Delay loaded function hooked

Possible hook found

Function already hooked

Hook at address

DLL load address

DbgHelp searching

Image source line

Unknown instruction found

Disassembly of troublesome code

Failed to find Release/Debug CRT heap

Symbol reader status

 

The locations of loaded DLLs are also displayed in the window for each LoadLibrary(), LoadLibraryEx() and FreeLibrary() in the target program.

 

note If for whatever reason, you don't want to collect diagnostic information, you can switch it off in the General > Instrumentation Logging page of the settings dialog

 

 

Filtering diagnostic information

 

By default, all information is displayed, but you can filter the messages to show only one type:

 

diagnostic-filter

 

All instructionStep the default option is to show everything

Information instructionStep operating system and environment information, etc

Error instructionStep notification of denied access and other error messages

Hooks instructionStep hooking success and failure messages

DLLs instructionStep DLL related information

Symbols instructionStep symbol loading status messages

DbgHelp debug instructionStep messages from DbgHelp.dll about the DLL symbol search processes

Symbols and DbgHelp debug instructionStep both the previous two

 

As well as filtering different types of lines, you can also search for specific terms:

 

Filter instructionStep enter some text and Apply Filter to show lines with the term in the Message column

 

note When identifying why symbols aren't loading, you'll find it's much easier when showing only the DbgHelp debug information.

 

 

Stdout and Stderr

 

diagnostic-stdout

 

The Stdout tab displays any data collected from stdout and stderr. seeAlsoThe option to enable this data collection is specified on the launch dialog/wizard.

 

The above image shows some data collected from a  program that reverses the characters in each line passed to it.

 

Copy instructionStep copy all data from the display on to the clipboard. For large amounts of data this can be time consuming.

 

Clear instructionStep clear the display of any captured data.

 

Display Most Recent instructionStep the display will be scrolled to ensure the most recently captured data is displayed.

 

 

Environment Variables

 

Environment variables tab displays environment variables from Thread Validator, environment variables from the program under test and environment variable substitution errors.

 

Choose which data you wish to view using the combo box at the top left of the tab.

 

Thread Validator environment variables

 

 

diagnosticEnvironmentVariables

 

 

Target application environment variables

 

If you launched the target application from Thread Validator the target application’s environment variables will be similar to those in Thread Validator, but with some additional env vars to control .Net profilers and and some other SVL_ prefixed env vars to communicate various data to Software Verify components that are loaded.

 

If you launched the target application as a standalone application, or service and used one of our APIs to connect to Thread Validator, the environment variables shown will reflect those in force at the time the application/service was started, and the account that application/service is running on.

 

 

diagnosticEnvironmentVariablesTarget

 

 

Environment variable errors

 

The environment variable errors display shows the name of the environment variable that could not be found, the string containing the environment variable, a comment indicating where the string came from (in this example, the command line), and a timestamp.

 

 

diagnosticEnvironmentVariablesErrors

 

 

Child Processes

 

Information about child processes, and the appropriate launch parameters passed to CreateProcess (and related functions) are displayed on this tab.

 

diagnosticChildProcesses

 

A context menu is provided to allow you to perform some actions with the launched application data.

 

diagnosticChildProcessesContextMenu

 

Launch parent application and monitor this application... instructionStep the launch application dialog is displayed configured to launch the parent application and monitor this application

 

Launch application... instructionStep the launch application dialog is displayed configured to launch and monitor this application

 

Open directory... instructionStep Windows Explorer is launched to view the contents of the launch directory (the directory field is empty nothing will be shown)

 

Open application directory... instructionStep Windows Explorer is launched to view the directory that contains the application (if the application specification has no path nothing will be shown)