VB6.exe - Projects beyond a certain size may result in compiler cr

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



This is related to another thread, "vb6.exe crash while debugging" by Process
Patrol. I am starting a new thread to warn others about a possible barrier to
further expanding features in large legacy VB6 projects. It is also hoped
that others may share similar cases so that some common denominator may be
found. Then at least we may know the limits of VB6 as it is, and the
work-arounds, if any.

I am having the very same issue with VB6 SP6 as the above "vb6.exe crash"
post describes. The error occurs during (or following) a compile, whether
native or p-code, whether via the IDE or the "Make" of the Explorer shell.

There seems to be a "tipping point," described below, at which this strange
memory error appears:

vb6.exe - Application Error
The instruction at "0x77fcc8e1" referenced memory at "0x00000000". The
memory could not be "written".

The above is an actual error message. In other crashes the instruction
and/or memory locations are different, but otherwise the message is the same.
The error occurs in my latest projects, where additional source code has been
added, and the resulting executable is larger too.

The affected machine is a Dell Inspiron 9100 laptop with 1.8GHz Pentium 4
HT, 1 GB RAM (upgraded from 256 MB, in the hopes of fixing this problem), and
60GB HD. It is configured for dual boot, and the hard drive is partitioned
into 40GB (NTFS) and 20GB (FAT32) areas. The OS in the 40GB (which is the
boot partition) is XP Pro SP2. The OS in the 20GB is 2K Pro SP4. The XP Pro
runs with HT enabled; the 2K Pro runs without (and it shows the Uniprocessor
device driver in the Device Manager).

The largest project I can compile on this laptop is:
- 144 files (of types BAS, FRM, FRX, DSR, DSA, and DSX)
- 2.50 MB of source code (the above 144 files)
- 2652 KB of (native binary) compiled executable

(I am using ActiveReports 2 from Data Dynamics; they are the DSR, DSA, and
DSX files.)

My troubles begin with this project:
- 164 files (as above)
- 2.88 MB of source code
- 2900 KB of executable

NOTE: I *CAN* compile this 164-file project on two (generic) desktop PC's.
(They are my employer's; the laptop is mine.) Both have VB6 SP6. One runs XP
Pro SP2, the other 2K Pro SP4 (and both using NTFS). The big difference:
Neither uses a HyperThreading CPU, and both are using AMD Athlon CPU's (2.5+
GHz) and have 512 MB RAM.

I am passing this information on as a helpful guide to my fellow VB6'ers. So
far it seems to be related to the Intel Pentium 4 with HyperThreading. It may
be possibe that the dual-core CPUs coming to market may share this problem I
am having with my HT machine. Also in the above "vb6.exe crash" post and
replies, nobody mentioned having an HT CPU or multiple CPUs, so it too may be
a potential problem lurking under the hood for everyone.

.



Relevant Pages

  • Re: Crashing E220R(s)
    ... but some indications were that either a memory module or CPU module was ... My guess would be to replace CPU0, if you can accept another crash, open ...
    (comp.unix.solaris)
  • Re: 280R rebooting even though patched, not sure how to interpret /var/adm/messages
    ... Among others things fixed is a memory timing issue with 900 Mhz CPU. ... My guess is the machine will reboot within ... After this, if it still crash, remove the memory bank listed below. ...
    (comp.unix.solaris)
  • Re: a dozen cpus on a chip
    ... and it would keep a 64-core cpu mostly employed. ... Leaking memory and IO handles has to do with untidy application ... I have worked on plenty of PDP11 and VAX in my time. ... the VAX could very occassionally crash even so. ...
    (sci.electronics.design)
  • Re: Ouch! Im a victim, too.
    ... memory, jumping between 60-90% CPU. ... Strange. ... I had no crash, am running it with 39MB of real memory, and ...
    (comp.sys.mac.advocacy)
  • Re: pcib allocation failure
    ... pcib1: attempting to grow prefetch window for ... attempting to grow memory window for ... cpu0: on acpi0 ... <ACPI PCI bus> on pcib0 ...
    (freebsd-current)