TMG-L Archives

Archiver > TMG > 2002-03 > 1015199185


From: Lee Hoffman <>
Subject: Re: [TMG] Memory in Win 98 SE, Win ME,Win XP/XP Pro (was: Exhibit log)
Date: Sun, 03 Mar 2002 18:46:25 -0500
References: <5.1.0.14.0.20020302183300.00acca80@mail.fscv.net><OE135uKxeSuPcw3LyyU00005116@hotmail.com><5.1.0.14.0.20020302233030.0270f8f0@mail.fscv.net><000501c1c2d8$d14159d0$60440142@master>
In-Reply-To: <3C829515.687AFE21@infoave.net>


Richard Brogger wrote:
>Is the error almost always in the code of the program that crashes? Or
>can a poorly written program cause other programs to crash?

Yes, a poorly written program can cause other programs to crash. Many TMG
users have experienced the problem when their system has crashed or
hung. Usually this is caused by some program not recognizing that another
program was using some amount of the computers memory. At least part of
this problem was related to MicroSoft's own Outlook and Outlook Express
e-mail programs. I understand this "memory leak" has been fixed by
MicroSoft in later versions. There are som ethat say MicroSoft's FoxPro
database language (in which TMG is written) also causes problems in that it
is not written well. While it was originally written for Windows 3.x, it
usually runs well under later versions of Windows (Win 9X and
after). However, there are so many more features and ways in which Windows
9X (and later) have grown that there may something in this claim. Even so,
most TMG users experience no problems at all, while some do seem to have
problems. The greatest problem is that there are millions of computers
running under some version of Windows. Out of those millions, there are
probably hundreds of thousands of different configurations. Thus some of
the problems _may_ be caused by a bug in Windows. In truth, it is amazing
that Windows has the reliability that it does as it is impossible for
MicroSoft (even considering Gates' billions) could test Windows on all
possible computer configurations. The old MS-DOS operating system was very
reliable, but it was very small in comparison to Windows.

>When two programs try to write to the same address in memory, one of
>them is wrong but how do I know which one? I figure it could happen
>two ways. Program A wrote to the address it had reserved but program B
>tried to use the same address. Thus program B is in error. Program A
>wrote to an address reserved by B and when B tried to write to that
>address, it crashed. Thus program A is in error.
>
>In either scenario the second program maybe should have had code to
>trap the error. If I were a programmer and following the rules, am I
>at fault if another program does not follow those rules? Is a
>programmer supposed to have enough foresight to plan for every
>possible way the rules might be violated by someone else? From what
>little I know of writing code, it is hard enough to get it right
>without planning for every possible mistake someone else might make in
>their code.

Theoretically the programmer is at fault. MicroSoft sets down certain
rules for developers to follow when they write programs. In some cases,
the programmer follows the rules, and still has a problem. Usually this is
because of small changes either by the programmer to fix another problem
and he doesn't realize he has broken the "rules". In other cases,
MicroSoft breaks its own rule in the same way or changes something
relatively minor and doesn't communicate the change to developers.

As to whether a programmer should have foresight to plan for every possible
problem, that is impossible. There is a saying among the programing
community that no computer program can be (not may be) tested and fixed to
be 100% reliable. I suppose that there are some very trivial programs that
could be proved 100% reliable, but they won't do much. Not a program as
complicated as a word processor or spreadsheet program, and most certainly
not an operating system or a database program.

As for determining which program is causing the problem, about the only way
is trial and error. Start Windows with little or no application programs
running (including those in the Startup folder and in your System Tray. If
there are no problems in Word here, start adding programs one at a time and
see what happens. Probably the best way to do this is to re-start Windows
each time that you add back a program. The worst part of this is that it
usually takes a very long time to find a problem in this way. When you do
this and have a problem, go back to the basics, and just add that
"candidate" program trying to see if that _is_ the problem. It may not be
or it may be that it is only under certain circumstances (the configuration
of your hardware or possibly related software or other programs.

I usually find that the easiest way to find a problem of this nature is to
off-load _everything_ from my hard drive(s) onto another computer of to
some reliable backup medium. Then after the hard drive(s) are empty,
completely re-format them and re-install Windows. Finally, I re-load
everything back --- note that there may some things that should be loaded
back before others (drivers, etc.). For many, this process may best be
left for a trusted technician. However, this process usually clears many
of the little odd things that start happening after you have used your
computer for some long period of time and have added many new items of
hardware and software.




----------
Lee Hoffman/KY
E-mail:
TMG Tips: <http://www.tmgtips.com>;
My website: <http://www.tmgtips.com/lhoffman>;
--------------
A user of the best genealogy program, The Master Genealogist (TMG)


This thread: