Intel® oneAPI Threading Building Blocks
Ask questions and share information about adding parallelism to your applications when using this threading library.
2465 Discussions

TBB 3.0 update 1 - Runtime Error R6025 - pure virtual fuction call?

mem64k
Beginner
370 Views
Hello,
i just upgraded to TBB 3.0 update 1 from TBB 2.2 update 3. System: Windows XP Pro x64 SP2, Visual Studio 2008 SP1.
I just replaced the tbb.lib, tbb.dll and headers. So there were no code changes at all in my test application. The test application ispretty simple:
struct TestBody
{
TestBody() {}
TestBody(const TestBody& src) {}
void TestBody::operator()( const tbb::blocked_range2d& range) const
{
// do some work
}
};
TestBody body;
tbb::parallel_for(tbb::blocked_range2d(0, sizeX, 0, sizeY ), body);
After upgrade i getting runtime error like this: R6025 - pure virtual function call. The error pop ups directly after tbb::parallel_for() call.Ithappensjust in x64 build, in Win32 is everything OK.
Has anybody a hint for this problem?
0 Kudos
1 Solution
Alexey-Kukanov
Employee
370 Views
So far, I was unable to reproduce it. I did the following:
- built all the tests for TBB 2.2;
- substituted TBB DLLs with that of 3.0, and ran the tests - passed (except for a couple of known fails due to incompatibility with old tests);
- substituted TBB DLL stub libs with that of 3.0, re-linked and re-ran the tests - same result;
- set INCLUDE to point to TBB 3.0 headers, thenrecompiled and re-ran 2.2 tests; a lot of whitebox tests did not compile, but all that compiled successfully passed, including the tests for parallel_for and blocked_range2d.

The only platform difference is that I used WinXP64 SP1, not SP2; but it should not matter.

Can you make sure that TBB 3.0 binaries are really used at run time? For that, please set TBB_VERSION environment variable to 1, and run the test. The library should print several strings started from "TBB:" into the console (stdout); please make sure that the very first line says it's TBB 3.0.

View solution in original post

0 Kudos
4 Replies
RafSchietekat
Valued Contributor III
370 Views
That looks interesting, I have some of those myself (entirely different environment, though). Maybe I'll have to try and downgrade to see if they disappear, but it would be nicer to see them solved in the latest release instead.
0 Kudos
Alexey-Kukanov
Employee
370 Views
Thanks for the report, I will investigate and get back to you.
0 Kudos
Alexey-Kukanov
Employee
371 Views
So far, I was unable to reproduce it. I did the following:
- built all the tests for TBB 2.2;
- substituted TBB DLLs with that of 3.0, and ran the tests - passed (except for a couple of known fails due to incompatibility with old tests);
- substituted TBB DLL stub libs with that of 3.0, re-linked and re-ran the tests - same result;
- set INCLUDE to point to TBB 3.0 headers, thenrecompiled and re-ran 2.2 tests; a lot of whitebox tests did not compile, but all that compiled successfully passed, including the tests for parallel_for and blocked_range2d.

The only platform difference is that I used WinXP64 SP1, not SP2; but it should not matter.

Can you make sure that TBB 3.0 binaries are really used at run time? For that, please set TBB_VERSION environment variable to 1, and run the test. The library should print several strings started from "TBB:" into the console (stdout); please make sure that the very first line says it's TBB 3.0.
0 Kudos
mem64k
Beginner
370 Views
Hello Alexey,
this isembarrassing, but I mustto confess a fault on my side. Sorry to bother you with this.Problem was the wrong setup of some internal dlls in combination with different TBB versions and platforms.
P.S.:On one occasion I give a bottle of beer... Thanks for your help!
0 Kudos
Reply