BACK TO INDEX

Bugs Fixed In VEE 5.X

Bugs Fixed In VEE 5.X

last update 27 aug 98 / greg goebel / public domain / vwb_5x

* This document lists bugs fixed in VEE 5.0.


[*] FIXED IN VEE 5.0 / VEE Execute Program Causes Memory Leak
[*] FIXED IN VEE 5.0 / Memory Hoard With Direct I/O Address Pins
[*] FIXED IN VEE 5.0 / Hostname Pin Causes BRB
[*] FIXED IN VEE 5.0 / ID Compiler Won't Work
[*] FIXED IN VEE 5.0 / RPC Problem
[*] FIXED IN VEE 5.0 / VEE RPCS Don't Like Indirect Function Calls
[*] FIXED IN VEE 5.0 / Enum Mismatch Error Not Handled Properly
[*] FIXED IN VEE 5.0 / Print Program Truncations
[*] FIXED IN VEE 5.0 / Problems With Pop-Up Dialogue Placement
[*] FIXED IN VEE 5.0 / Hardcoded VEE HPIB Controller Address
[*] FIXED IN VEE 5.0 / Line Probe Reveals Partial Arrays
[*] FIXED IN VEE 5.0 / Load Library Causes GPF IN VEE
[*] FIXED IN VEE 5.0 / Sort() On Zero Array Leads To BRB Problem
[*] FIXED IN VEE 5.0 / For Count With Zero Value Causes Serious Error
[*] FIXED IN VEE 5.0 / Dropdown List BRB /
[*] FIXED IN VEE 5.0 / Odd For Range Problem
[*] FIXED IN VEE 5.0 / XY Trace Log Mapping Problem
[*] FIXED IN VEE 5.0 / Dataset Operations Cause Hangup
[*] FIXED IN VEE 5.0 / Coordinate Record Allocate Problem
[*] FIXED IN VEE 5.0 / Disastrous (If Obscure) List Object Bug
[*] FIXED IN VEE 5.0 / List Object Panel View Bug
[*] FIXED IN VEE 5.0 / Message Box Pins Get Mixed Up
[*] FIXED IN VEE 5.0 / Odd Array-Recognition Bug
[*] FIXED IN VEE 5.0 / Double Quotes In Pin Names
[*] FIXED IN VEE 5.0 / Setting Values In VEE Formula Causes Brb
[*] FIXED IN VEE 5.0 / Sequencer Single-Step Wrongly Documented

 BACK TO INDEX

[*] FIXED IN VEE 5.0 / VEE Execute Program Causes Memory Leak

* If you perform EXECUTE PROGRAM from HP VEE, it drops a little memory each time a program is executed.

[*] FIXED IN VEE 5.0 / Memory Hoard With Direct I/O Address Pins

* On current versions of VEE, you can bring out a pin on the Direct I/O object to allow programmatically setting the address of a instrument.

Unfortunately, every time you do this, VEE allocates a little more memory. This is a memory "hoard", not a memory "leak". A leak is where a program allocates memory and then misplaces it; a hoard is where a program continues to keep allocating memory it doesn't need. A hoard is harder to track down because, as far as the operating system is concerned, the program is acting legally.

You can also bring out a pin on Direct I/O to allow you to specify an I/O configuration name. It has the same problem as the address pin.

[*] FIXED IN VEE 5.0 / Hostname Pin Causes BRB

* If you bring out the Hostname pin on a Direct I/O object and try to shove a LAN address into it, you get a Big Red Box.

[*] FIXED IN VEE 5.0 / ID Compiler Won't Work

* In principle, you should be able to configure an ID through the Instrument Manager and it will be automatically compiled. In practice, unfortunately, there's a long file names bug in VEE 4.0 that can give an error if you do this.

There's a simple workaround. Just run a DOS window, change directories to VEE/HPIDS, and execute:


   ..\hpidc <driver_name>  

[*] FIXED IN VEE 5.0 / RPC Problem

* If a Remote UserFunction has an output which is not pinged, when the call attempts to return <no data> it will GPF (Segmentation Violation).

[*] FIXED IN VEE 5.0 / VEE RPCS Don't Like Indirect Function Calls

* A user notified us that Callable VEE was giving him a Segmentation Error on the remote host. The remote VEE program was loading a UserLibrary and then indirectly calling a UserFunction in that UserLibrary. Callable VEE had no direct access to that UserFunction.

The lab didn't know of this problem and suggested that Callable VEE in itself wasn't the root of the problem -- it would also likely occur in VEE-to-VEE RPCs, which were easier to deal with. So I conducted an experiment with VEE-to-VEE RPCs to see if I could duplicate the problem.

I wrote a VEE library file named "rpc_two.lib" that contained a single function, "MySquare", that simply multiplied a number by itself.

I wrote another VEE library file named "rpc_main.lib" that contained three functions:

I left these libraries on my PC (running Win95) and then ran a VEE program on my HP-UX workstation to remote-load "rpc_main.lib", call "LoadLib", and then call "Square1". I got the error:


   Error in Service on Remote Host 

   Remote User Function, Square1, reports error:
   Error: 979  Internal Error:  Segmentation violation (signal=11)
   ...
   Error number:  865  

Then I changed the RPC to "Square1" to the control function, "Square2". It worked fine.

[*] FIXED IN VEE 5.0 / Enum Mismatch Error Not Handled Properly

* A customer provided us with the following program that indicated an error:


   +---------------+
   | Radio Buttons |
   +---------------+
   | <*> Item 1    |   +--------------+
   | < > Item 2    +-->| Build Record +--+
   | < > Item 3    |   +--------------+  |
   +---------------+                     |
                      +------------------+     +--------------+
		      |                        |              |
   +---------------+  |   +-----------------+  |   +----------+----------+
   | Radio Buttons |  |   |    Formula      |  |   |   Record Constant   |
   +---------------+  |   +-----+-----------+  |   +---------------------+
   | < > Item 1    |  +-->| rec | rec.a = b +--|-->| Field Name  Value   |
   | < > Item 2    +----->| b   |           |  |   | [    A   ] [Item 1] |
   | < > Item 3    |      +-----+--+--------+  |   +---------------------+
   | <*> ITEM 4    |               |           |
   +---------------+               +-----------+  

Note that ITEM 4 is set on the lower ENUM object. Since this value is not in the list of the ENUM at top, attempting to assign the value of ITEM 4 to a record based on that ENUM list should generate an error. In fact, it does not, but the value field of the Record Constant goes nuts (after about a half dozen executions of the program) and then a Big Red Box flashes up.

The problem is that VEE didn't nail the illegal operation immediately. It does now.

[*] FIXED IN VEE 5.0 / Print Program Truncations

* If you use PRINT PROGRAM to print a function that's bigger than the screen, sometimes you get multiple pages that give the entire function in parts, sometimes you just get one screen.

The problem occurs if a window in the program is maximized. You can ensure this is not so by bringing up the main program window (without any other functions in windows) and ensuring that it is not maximized.

[*] FIXED IN VEE 5.0 / Problems With Pop-Up Dialogue Placement

* We've had a number of complaints from customers using VEE 4.X that when they run programs, they have no control over the placement of the pop-up dialogues when the appear on the screen.

This is a bug, but there is a simple workaround. The trick is that even though you have a panel view in your VEE development environment, positioning the pop-ups relative to that panel view does no good.

You have to run your program, get the execution window and then position the pop ups. This will then lock the pop ups in place.

As an added confusion, Start buttons cause problems in getting things to work properly; you need to use the Run button instead. The use of Start buttons is discouraged.

[*] FIXED IN VEE 5.0 / Hardcoded VEE HPIB Controller Address

* There is an obscure fact that HPIB cards have an HPIB address, just as instruments do. The default address for the 8234X cards is 21, but this is an arbitrary choice; it could be any legal address, and in fact the user can change this assignment using the HP I/O Libraries Configuration utility.

However, VEE 4.01 has a problem if the card HPIB address is not 21 ... if you run Instrument Manager and try to do a refresh, it will ignore any instrument at address 21 and then try to identify the card as an instrument.

It's a cosmetic problem, however; the user can still configure an instrument at address 21 and get it to work. It just doesn't show up on automatic searches.

[*] FIXED IN VEE 5.0 / Line Probe Reveals Partial Arrays

* The line probe feature under VEE 4.01 can demonstrate very odd behavior in displaying text arrays where the elements only have a few characters, with the effect that only part of the display can be shown.

[*] FIXED IN VEE 5.0 / Load Library Causes GPF IN VEE

* A European user passed on a VEE program that loaded UserLibraries with Global Variables and resulted in a GPF.

[*] FIXED IN VEE 5.0 / Sort() On Zero Array Leads To BRB Problem

* If you try to do a sort() in VEE on an INTEGER array of zeroes, you get a Big Red Box error.

[*] FIXED IN VEE 5.0 / For Count With Zero Value Causes Serious Error

* Consider the following program:


   +--------------+
   | For Count: 0 +--+  Notice the zero count.
   +-------+------+  |
           |         |                          +--------------+
           |    +----+----+                     | Build Record |
           |    | Integer +---->+-----------+   +---+----------+ 
           |    +---------+     | Collector +-->| A | Array 1D +-->
           |                 +->+-----------+   +---+----------+
	   |                 |
	   +-----------------+
 
You get a segmentation violation. Workaround (if you want to call it that) is to specify a For Count value greater than 0.

[*] FIXED IN VEE 5.0 / Dropdown List BRB /

* Our person in Denmark reports an obscure bug:

[*] FIXED IN VEE 5.0 / Odd For Range Problem

* The UK reported a very odd problem. The following program works fine:


          +-----------------+
          |    For Range    |      +----------+
          +-----------------+      | Formula  |
          | From  [ 0     ] |      +---+------+
          | Thru  [ 9     ] +--+-->| A | A==6 +--+
          | Step  [ 1     ] |  |   +---+------+  | 
          +--------+--------+  |                 |
                   |           |             +---+---+
  +----------------|-----------+             | Break |
  |                |                         +-------+
  |                |
  |   +------------+------------+   +-----------------+
  |   |         Formula         |   |   AlphaNumeric  |
  |   +---+---------------------+   +-----------------+
  +-->| A | "Finished at: " + A +-->| Finished at:  6 |
      +---+---------------------+   +-----------------+  

However, if you change the count to go from 9 to 0, step -1, the Alphanumeric never displays anything.

The propagation of the objects is the same in both circumstances, so this really seems like a bug.

[*] FIXED IN VEE 5.0 / XY Trace Log Mapping Problem

* A German user reported the following behaviour. Set the Scale control input pin on an XY Trace object using the following record constant:


   +---------------+
   | Record        |
   +---------------+
   |Scale    Y     |
   |Min      -10   |
   |Max      +10   |
   |Mapping  Linear|
   +---------------+  

Run the program. Now change the settings to:


   +---------------+
   | Record        |
   +---------------+
   |Scale    Y     |
   |Min      +1    |
   |Max      +10   |
   |Mapping  Log   |
   +---------------+  

Run the program again and it will error:


   Bounds for Log mapping must be > 0  

The Log range check is done with the old scale values (-10 ... +10) The same happens when a program dynamically changes the Mapping of an XY Trace object.

Workaround: Change the record to an array where the first element is:


   Scale    Y
   Min      +1
   Max      +10
   Mapping  Linear  

-- and the second element is :


   Scale    Y
   Min      +1
   Max      +10
   Mapping  Log  

The first element of the array is apparently used first so that it will set the scaling to Linear with positive values. Then the second element can set the scaling to Log.

[*] FIXED IN VEE 5.0 / Dataset Operations Cause Hangup

* A Euro support person reported a fairly ugly bug with VEE and EXECUTE REWIND. His program looked like this:


                       +--------------------------+
                       |       To Data Set        |
   +----------+        +--------------------------+
   |  Record  +------->| To DataSet [ test.txt  ] |
   | Constant |        | [x] Clear File At Prerun |
   +----------+        +------------+-------------+
                                    |
                       +------------+-------------+
                       |        From File         |
                       +--------------------------+
                       | From File [  test.txt  ] |
                       +--------------------------+
                       | EXECUTE REWIND           |
                       +------------+-------------+
                                    |
                       +------------+-------------+
                       |       To Data Set        |
   +----------+        +--------------------------+
   |  Record  +------->| To DataSet [ test.txt  ] |
   | Constant |        | [x] Clear File At Prerun |
   +----------+        +------------+-------------+
                                    |
                      +-------------+--------------+
                      |      From Data Set         |
                      +----------------------------+
                      | from DataSet [ test.txt  ] |
                      | Get Records  [ All ]       |
                      +----------------------------+  

This would cause an apparent lockup that actually results in the program allocating more and more memory until an out-of-memory error occurs. CPU usage goes to 100% until that happens.

All you have to do to get it to work is change the From File to a To File:


                       +--------------------------+
                       |       To Data Set        |
   +----------+        +--------------------------+
   |  Record  +------->| To DataSet [ test.txt  ] |
   | Constant |        | [x] Clear File At Prerun |
   +----------+        +------------+-------------+
                                    |
                       +------------+-------------+
                       |          To File         |
                       +--------------------------+
                       | From File [  test.txt  ] |
                       +--------------------------+
                       | EXECUTE REWIND           |
                       +------------+-------------+
                                    |
                       +------------+-------------+
                       |       To Data Set        |
   +----------+        +--------------------------+
   |  Record  +------->| To DataSet [ test.txt  ] |
   | Constant |        | [x] Clear File At Prerun |
   +----------+        +------------+-------------+
                                    |
                      +-------------+--------------+
                      |      From Data Set         |
                      +----------------------------+
                      | from DataSet [ test.txt  ] |
                      | Get Records  [ All ]       |
                      +----------------------------+  

[*] FIXED IN VEE 5.0 / Coordinate Record Allocate Problem

* There seems to be a problem with creating a constant record with the following parameters being set right off the bat:


   Type: Coord
   Num Dims: 1
   Dim 1 Size: 250 (any size greater than 1)
   Num Coord Dims: 2
   Map1: Linear 0...0  

It only creates a size 1 or 2 coordinate array. Sometimes it creates a size 10 (with Dim 1 Size set to 10), if I try it enough.

There is a workaround. First, set the following:


   Type: Coord
   Num Dims: 0
   Num Coord Dims: 2  

Then click on OK. Then set the following:


   Type: Coord
   Num Dims: 1
   Dim 1 Size: 250 (any size greater than 1)
   Num Coord Dims: 2
   Map1: Linear 0...0  

Then click on OK. This should work OK.

[*] FIXED IN VEE 5.0 / Disastrous (If Obscure) List Object Bug

* A Finnish customer wrote the following simple VEE program:


   +----------------+  <-- Set to Auto-execute.
   | Drop-Down List |
   +----------------+   +----+   
   | Item 1         +-->| OK +--+
   +----------------+   +----+  |
                                |
                       +--------+-------+
                       | Drop-Down List |
                       +----------------+
                       | Item 1         |
                       +----------------+  

So, you make a selection from the Drop-Down List at top, starting the program, make a selection from the one at the bottom, then click OK.

VEE menus no longer work and VEE is locked up. The toolbar seems to work OK, though.

[*] FIXED IN VEE 5.0 / List Object Panel View Bug

* When:

[*] FIXED IN VEE 5.0 / Message Box Pins Get Mixed Up

* It seems that if you set the button configuration in a Message Box and then change it, the poor little Message Box gets confused.

Create an instance of the default Message Box then under "Buttons", select "Abort Retry Ignore", and then select "Retry Cancel".

The "Retry" and "Cancel" output pins are now reversed. That is, the one that says "Retry" fires if the user selects the Cancel button, and the reverse. Same deal for other button settings. The Message Box works OK if you only change the button selection once.

[*] FIXED IN VEE 5.0 / Odd Array-Recognition Bug

* We ran into an odd VEE bug, best illustrated by example with two small programs:


                          +---------------+
                          | AlphaNumeric  |  For an array comparison to 
                          +---------------+  test true, *all* elements
                      +-->| 0: 1          |  must test true.  So this 
   This line shows up |   | 1: 0          |  program is wrong.
   as a *single* blue |   +---------------+
   line - - - - - - > |
                      |
   +---------------+  |   +---------------+   +--------------+
   |    Formula    |  |   |  If/Then/Else |   | AlphaNumeric |
   +---------------+  |   +--------+------+   +--------------+
   | [1, 0] AND 1  +--+-->| A == 1 | Then +-->|       1      |
   +---------------+      |        | Else |   +--------------+
                          +--------+------+

                          +---------------+
                          | AlphaNumeric  |
                          +---------------+
   This line shows up +-->| 0: 1          |  This program works
   as a *double* blue |   | 1: 0          |  correctly.
   line - - - - - - > |   +---------------+
                      |
   +---------------+  |   +---------------+
   |    Integer    |  |   |  If/Then/Else |   +--------------+
   +---------------+  |   +--------+------+   | AlphaNumeric |
   | 0000: 1       +--+-->| A == 1 | Then |   +--------------+
   | 0001: 0       |      |        | Else +-->|       0      |
   +---------------+      +--------+------+   +--------------+  

The single blue line indicates that VEE thinks the value is a scalar when it's an array ... serious trouble.

Workaround is to take a Concatenator object and pull off the second pin:


   +---------------+                     |
   |    Formula    |                     |
   +---------------+   +--------------+  |
   | [1, 0] AND 1  +-->| Concatenator +--+-->
   +---------------+   +--------------+  

[*] FIXED IN VEE 5.0 / Double Quotes In Pin Names

* A customer accidentally put double-quotes ("") in the output pin of a Direct I/O object. It corrupts the program. worse, the customer can still save the program.

[*] FIXED IN VEE 5.0 / Setting Values In VEE Formula Causes Brb

* There was a limitation in setting values in a formula in VEE 4.0. If there was a record of 4-dim arrays, the following would cause a BRB:


   data.freq[subgroup, type, device, index] = newValue  

Setting values within a record worked for a 1-dim array, but any higher dims got the BRB. Values could be set in a 4-dim array if it wasn't a field of a record.

[*] FIXED IN VEE 5.0 / Sequencer Single-Step Wrongly Documented

* As of VEE 4.0, a user can no longer step through sequencer transactions. The lab guys said they yanked it out for VEE 4.0 (hard to get to work in compiled mode). We need to update the documentation.

 TOP OF PAGE


 BACK TO INDEX