Error occurred in a client computer with Altiris Agent installed:
Microsoft Visual C++ Runtime Library
Program: C:\Program Files\Altiris\Altiris Agent\AeXNSAgent.exe
-pure virtual function call
You may see similar error in the Altiris Agent logs:
Tick Count: 1133797875
Host Name: ClientMachineName
Process: aexnsagent.exe (4384)
Thread ID: 3768
Description: Failed to start object Altiris.AeXNotificationManager: Pure virtual function called (-2147023270)
Notification Server 6.0.6074 SP3
Altiris Agent 6.0.2338
According to Microsoft, 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. This is illustrated in the sample code below, along with some more description. Click here for more details.
Also, C Run-Time Error R6025 pure virtual function call is related to the following:
No object has been instantiated to handle the pure virtual function call. This error is caused by calling a virtual function in an abstract base class through a pointer which is created by a cast to the type of the derived class, but is actually a pointer to the base class. This can occur when casting from a void* to a pointer to a class when the void* was created during the construction of the base class. See here.
Note: This information was found on Microsoft's Web site.
- According to Microsoft, calling a pure virtual function is a programming error, so you need to find the call to the pure virtual function and rewrite the code so it is not called. One way to find a call to a pure virtual function is to replace the pure virtual function with an implementation that calls the Windows API function DebugBreak. When using the debugger, DebugBreak will cause a hard-coded breakpoint. When the code stops running at this breakpoint, you can view the callstack to see where the function was called.
Another way to find a call to a pure virtual function is to set a breakpoint on the _purecall function that is found in PureVirt.c. Breaking on this function has the advantage of keeping the stack intact so that you can trace what is occurring.
Note: This information was found on Microsoft Website.
- As a workaround (since rewriting the code may not be necessary) you will need to remove the Altiris Agent from the computer that has the error. Follow the instructions from article 1995, "Instructions for the complete manual uninstall of the Altiris agent" to remove manually the Altiris Agent and then try to reinstall it.