Oof, that's a doozy of an error.
I'd say kalabdel's idea of uninstall/reinstall is probably a good one, and if that doesn't do it, you need to call tech support.
+1
TL;DR
This error comes from a statement something like this:
Code:
assert pRet && m_is_allocation_allowed;
In the code, specifically in some C++ file called Package...oxy.cpp, the value of variable pRet is 0 (NULL), and/or the value of variable m_is_allocation_allowed is 0 (NULL). If either of those is 0, the programmer decided the code could not continue and the best thing to do was to throw an error/exception. That event is not handled ("caught") further up the call chain, so the program crashes and the RunTime displays that popup.
Without source code no one is likely to divine the reason for this failure. Code is more like electronic ignition than a distributor; it needs certain assertions (assumptions) to be true to run and cannot limp along if things are "close;" the programmer chose to have the program crash rather than try to continue with this particular failed assertion.
That said, here is some speculation (in increasing amounts as you read).
A failed assertion is usually something, which the programmer expects to be true, that actually evaluates to false i.e. an unexpected condition, that indicates something is rotten in the state of Denmark.
This particular problem seems to be about allocating something.
The name pRet sounds like a common-ish abbreviation for "
pointer
Returned" or "
pointer to
Return" e.g. a pointer to memory, e.g. memory allocated to contain an instance of a class. Typically this is done with a statement like this:
Code:
pRet = new ThingClass(arguments);
where ThingClass is the identifier for the particular class that needs to be allocated; the name of the source file ends in "oxy.cpp;" I wuold guess that oxy is the end of the word Proxy; this is a software simulator of some hardware, so the are probably many functional proxies in the package. Arguments, if present, are used to assign values to members of the class e.g. size of a buffer. If the required memory could not be allocated, e.g. if the desired buffer size is too big, then an invalid pointer is returned; an invalid pointer has a NULL, or 0, value. The likelihood of a single memory allocation failing is small in this day and age, so pRet would not be zero unless a bad size parameter (too large, or negative) were supplied, or the code got into an infinite loop and continued allocating such instances until memory was exhausted.
The other variable in the assertion, m_is_allocation_allowed, probably means what it says. Typically something like that is an int (integer) representing a boolean state, with a value of 0 meaning false and any other value meaning true. Determining why it would be 0 (false) would involve guessing why it exists in the first place: the trial version is supposed be fully functional, so is it possible the trial period has expired, although I would expect something before this obscure error would take the opportunity to more clearly state the base problem and ask for money to continue; or could it be temporarily false while another process in the package is initializing or in some other state, as suggested by tdoa; who knows?
Anyway, OP is in the US, so Siemens tech support is hungrier and maybe more likely to actually provide support. The variable names are in English, so maybe the original coder is local as well, if it gets that far.
Maybe the current machine is DLL hell as far as this app is concerned. Could this be attempted on another machine, or on a clean windows install on a VM?