PDA

View Full Version : Runtime Error


Hew Jaz
27th Nov 2005, 13:02
This again...

I have searched, but it happens when windoze starts, and not when I access sites. Usually only appears once, at startup. Not asked to debug or anything similar.

How bad is it? Where / what is the problem?

R6025 - pure virtual function call suggests to me that it is memory - is it memory ? Or something else? New memory required perhaps?

All help, as usual, gladly accepted.

(Tried posting a poor screen shot but don't seem able to)

HJ

BOAC
27th Nov 2005, 13:07
Not a lot of info there , big one:D - OS, when in boot-up, list of start-up programmes etc would help!

Maybe start here? (http://search.support.microsoft.com/search/?adv=1)

Spinflight
27th Nov 2005, 13:46
Sounds like virtual memory call using a register.

Sounds as though you've altered the size of the swap file and win can no longer find a component it needs.

How much physical memory do you have on your machine? If it is 256 or 512 then you can turn off virtual memory. I always do and note a huge performance increase anyway.

Try here (http://help.lockergnome.com/index.php?showtopic=38398&st=0) for some performance tweaks.

Turn off VM and initilise windows within RAM and it should solve the problem.

Mac the Knife
27th Nov 2005, 18:31
Not to be horrid or anything, but Google IS your friend..

http://www.google.com/search?lr=&ie=UTF-8&oe=UTF-8&q=R6025%20-%20pure%20virtual%20function%20call

Oh okay then - this C++ errorcode is due to a programming error in whatever app you're using.

"SYMPTOMS - The C++ program fails and reports the following run-time error: runtime error R6025 - pure virtual function call

CAUSE
This error occurs when your application indirectly calls a pure virtual member function in a context where a call to the function is not valid. In most cases, the compiler detects this and reports the error when building the application. But depending on how your code is written, sometimes the problem is detected only at run-time.

The error occurs when you indirectly call a pure virtual function within the context of a call to the constructor or destructor of an abstract base class."

So it ain't your fault!

PS: I have to disagree with Spinflight about disabling VM - particularly if you have less than 1GB of memory.

Some apps (admittedly not most of the standard ones) just won't run without VM. In addition, this wastes a lot of the RAM. The reason is that when programs ask for an allocation of Virtual memory space, they may ask for a great deal more than they ever actually bring into use — the total may easily run to hundreds of megabytes. These addresses have to be assigned to somewhere by the system. If there is a page file available, the system can assign them to it — if there is not, they have to be assigned to RAM, locking it out from any actual use.

I run a pagefile of 512MB (don't use the "2.5 x installed RAM" story) with 1.5GB of memory, but could get away with 100MB.

Windows (and apps) expects there to be a pagefile - disc space is cheap and the performance hit (?) is minor while the stability hit can be major.

"You are in a dark and damp cellar with a narrow passageway leading north, and a crawlway to the south. On the west is the bottom of a steep metal ramp which is unclimbable."

P.Pilcher
27th Nov 2005, 18:47
Are you suggeasting, Mac, that the cure to the problem is entering "XYZZY" by any chance?

P.P.

Mac the Knife
27th Nov 2005, 18:53
"XYZZY" :confused:

--------------------
"Bother," said Pooh as he struggled with /etc/sendmail.cf, "it never does quite what I want. I wish Christopher Robin was here."

Gertrude the Wombat
27th Nov 2005, 19:29
In most cases, the compiler detects this and reports the error when building the application. But depending on how your code is written, sometimes the problem is detected only at run-time. Personally I'm somewhat unimpressed by this. Although I admit to not having done the maths so I haven't actually proved that the compiler logically could detect all cases.

I haven't done a proper analysis, but my feeling is that whenever I've seen this error in any code I've written it's gone away on a complete system recompile and relink, including all DLLs (possibly to be replaced by the compile time error if my code is actually wrong, which even my code can be, temporarily, on rare occasions :( ).

So, there's just a suspicion that this error occuring on a production system, ie a punter's machine rather than the original programmer's machine, might be a "DLL hell" symptom, ie an incompatible set of versions of DLLs trying to work together. In which case we're back to the usual - the question to ask is "immediately before this started going wrong, exactly what was it that I installed?" and try to restore the system to what it was before that.

NotTheOrganGrinder
27th Nov 2005, 19:41
The exact way of causing it is a bit hazy in memory, but I recall being able to reproduce it quite easily.

Some of the devs were always trying to outdo each other with various unreadable bits of code, or other strange things that you have to read twice to check you are not missing something (sigh, will they never learn...). The one which (I think) caused all the errors were function try...catch blocks, when used with virtual dtors.

...
~aClass()
try
{
//cleanup
}
catch(...)
{
//handle
}
...

Compiled with VC7.0

Spinflight
28th Nov 2005, 08:19
PS: I have to disagree with Spinflight about disabling VM - particularly if you have less than 1GB of memory.

No problems there Mac, I've read countless threads by serious dudes who will generally disagree completely on VM issues. :ok:

Windows uses half of your memory for windows itself, however this total includes the Virtual Memory. Hence if you use the recommended setting of 1.5 times physical memory and you have 1gig of memory then Windows takes 1.25 gig to load itself into, which is all Virtual. This worked wonders to help low memory users run Windows when physical memory was expensive (figure 16 and 32meg systems running earlier versions, 2K only 'needs' 128meg) but looks to be wasteful when you have plenty of RAM.

The theory behind VM sounds wonderful as page faults are meant to be very rare, however not in my experience (I expect due to lazy programming though I'm not fluent in C++). Basically when you see your computer thrashing its due to page faults with the OS swapping files in physical RAM for those on the VM. It's meant to be a 1 in a million occurence due to the statistics behind code access....

If you use games or very large applications then definately keep VM enabled, though if you only use websurfing, office etc then you can probably live without VM even if your running 256 or 512meg systems.

Personally I use XP with VM disabled (havn't yet had a problem and the performace has certainly improved) and 2000 with a smallish page file like Mac's.

One tip which most people agree on is to use a seperate partition at the beginning of another drive for your swap file, this frees up the second IDE channel for your VM hence speeding up the IO (i.e. the OS can access VM whilst still using your C: drive to run the app).

Even better is to use a RAID system seeing as though are so many cheap small HDs available.

Hew Jaz
28th Nov 2005, 19:43
I'm Back..!!

After a brief spell offline due to ISP having their own difficulties....

Thanks for the replies. Armed with additional information, I have a better idea as to what I'm looking for.

The prog that seems to be causing the problem is the Nokia PC suite, but that has been installed for quite a while now. I'll try uninstalling and reinstalling it and see where I go from there.

I could yet be back fro more advice though!!

Cheers

HJ:ok: