Reporting Problems

We strive to make IDL as reliable and bug free as possible. However, no program with the size and complexity of IDL is perfect, and problems do surface. When you encounter a problem with IDL, the manner in which you report it has a large bearing on how well and quickly we can fix it.

The relnotes.txt file accompanying each release includes information about new features in that release, bug fixes, and known problems which may be of help.

This section is intended to help you report problems in a way which helps us to address the problem rapidly.

Background Information

Sometimes, a problem only occurs when running on a certain machine, operating system, or graphics device. For these reasons, we need to know the following facts when you report a problem:

The installation number is assigned by us when you purchase IDL and is included in the license information that we sent you. The IDL version, site number, and type of machine are printed when IDL is started.

For example, the following startup announcement appears indicating you are running IDL version 7.1 under Sun Solaris using installation number xxxxx-x, under a floating license located on a particular license manager.

IDL Version 7.1, Solaris (sunos sparc m64).
(c) 2007, ITT Visual Information Solutions
Installation number: xxxxx-x.
Licensed for use by: ITT Visual Information Solutions IDL floating licenses

Under UNIX, the version of the operating system can usually be found in the file /etc/motd. It is also printed when the machine boots. In any event, your system administrator should know this information.

Under Windows, select About from the Help menu in the Windows Explorer.

Double Check

Before reporting a problem double check with the manual or a local expert if one is available. Sometimes, it is a simple matter of misinterpreting what is supposed to happen.

If you cannot determine what should happen in a given situation by consulting the reference manual, the manual needs to be improved on that topic. Please let us know if you feel that the manual was vague or unclear on a subject.

Another question to ask is whether the problem lies within IDL, or with the system running IDL. Is your system properly configured with enough virtual memory and sufficient operating system quotas? Does the system seem stable and is everything else working normally?

Describing The Problem

When describing the problem, it is important to use precise language. Terms like crashes, blows up, and fails are vague and open to interpretation. Does it really crash IDL and leave you looking at an operating system prompt? This is how ITT Visual Information Solutions technical support personnel interpret a problem report of a crash. If the behavior being reported refers to an unexpected error message being issued before returning another prompt, then describing it as a crash becomes misleading. What is really meant by a term like "fails?"

It is also important to separate concrete facts from conjecture about underlying causes. For example, a statement such as "IDL dumps core when allocating dynamic memory" is not nearly as useful as this statement, "IDL dumps core when I execute the following statements... "

Reproducibility

Intermittent problems are by far the hardest kind to fix. In general, if we can't make it happen on our machine, we can't fix it. It is far more likely that we can help you if you can tell us a sequence of IDL statements that cause the problem to happen. Naturally, there are degrees of reproducibility. Situations where a certain sequence of statements causes the problem 1 time in 3 tries are fairly likely to be fixable. Situations where the problem happens once every few months and no one is sure what triggered it are nearly impossible to identify and correct.

Simplify the Problem

In accordance with ITT Visual Information Solutions Technical Support policy, when reporting a problem, it is important to give us the shortest possible series of IDL statements that cause it. Here are some suggestions for simplifying your problem:

Copy the procedure and function files that are involved to a scratch second copy. Never modify your only copy!

Eliminate everything not involved in demonstrating the problem. Don't do this all at once. Instead, do it in a series of slow careful steps. Between each step, stop and run IDL on the result to ensure that the problem still appears.

If a simplification causes the problem to disappear, then slowly restore the statements involved until you can identify the source of the problem. The end result of such simplification should be a small number of IDL statements that demonstrate the problem.

If the problem does not involve file Input/Output, strive to eliminate all file I/O statements. Use IDL routines to generate a dummy data set, rather than including your own data if at all possible. If your problem report does not involve your data, it will be much easier for us to reproduce.

On the other hand, if the problem involves file Input/Output, and the problem only happens with a certain data file or type of data, we will need to look at your data or a sample of your data.

If it is necessary to send us your data, use one of the following methods:

Be sure to include the commands that reproduce your problem in your message to use. If you have placed your data on the ftp site, include the name of the data set and when it was uploaded.

Problems with Dynamic Loading

Under some operating systems, the CALL_EXTERNAL and LINKIMAGE system routines allow you to dynamically load routines written in other languages into IDL. This is a very powerful technique for extending IDL, but it is considerably more difficult than simply writing IDL statements. At this level, the programmer is outside the user level shell of IDL and is not protected from programming errors. These errors could give incorrect results or crash IDL. In such situations, the burden of proving that a problem is within IDL and not the dynamically loaded code is entirely the programmer's.

Although it is certainly true that a problem in this situation can be within IDL, it is very important that you exhaust all other possibilities before reporting the problem. If you decide that you need to report the problem, the comments above on simplifying things are even more important than usual. If you send us a small example that exhibits the problem, we may be able to respond with a correction or advice.

Contact Us

To report a problem, contact us at the following addresses:

Electronic Mail
support@ittvis.com

Telephone
(303) 786-9900
(303) 786-9909 (Fax)
(303) 413-3920 (IDL technical support direct line)

Mail
ITT Visual Information Solutions
4990 Pearl East Circle
Boulder, CO 80301

Web Site
http://www.ittvis.com