Software Archive
Read-only legacy content
17061 Discussions

x64 code with /debug:parallel links against x86 Parallel Debugging DLL (PDBX.dll)

sigmac2
Beginner
733 Views

Developing under Win7 Pro x64 + VS 2008 Pro. If I enable /debug:parallel in my x64 program, it crashes with:


The application was unable to start correctly (0xc000007b). Click OK to close the application

If I check my exe with Dependency Walker, I see that it has linked against the x86 PDBX.dll and x86 LIBIOMP5MD.DLL. Obviously this leads to the crash.


I've uninstalled, reinstalled all of VS and Parallel Studio (sp1, composer update 4).

Any ideas?

0 Kudos
7 Replies
Rob_Mueller-Albrecht
733 Views

Dear Chris,

let me try to provide some background on where this dependency comes from.

/debug:parallel enabels the symbol info instrumentation usedfor advanced parallel debug features in Visual Studio (Intel Parallel Debugger Extension). One of t he features is that it allows for serial execution of OpenMP parallel regions as well Data Sharing Event detection. The former allows to identify whether a runtime issue is parallelism based or algorithmic. The later allowes to more easily identify the root causes for data races and such.

Both features rely on debug exceptions being triggered by LIBIOMP5MD.DLL and passed on to Visual Studio via PDBX.dll.

If these 2 files are present - i.e. if you are running and debugging on an environment that has the Intel Parallel Studio or Intel Compiler Pro distribution installed this dependency should not be a problem.

If you do not intend to debug your application or run it on a system without development tools installed, it may be easiest to not enable this debug option (or to copy these files over).

Thanks, Rob

0 Kudos
sigmac2
Beginner
733 Views
Hi there,

Sorry I was not clear enough in my original post.


- i.e. if you are running and debugging on an environment that has the Intel Parallel Studio or Intel Compiler Pro distribution installed this dependency should not be a problem.

I very much so want to be debugging via Parallel studio. Parallel studio and Visual Studio Pro 2008 are both installed. Those files are present.

This error occurs when I debug the app (f5) from within Visual Studio.

The problem is it has linked against the wrong architecture.

To reiterate:

Installed products:

  • Visual studio 2008 pro installed
  • Parallel studio (sp1, composer update 4)

Setup:

  • Debug build, x64
  • Using /MDd (multi-threaded debug DLL) for runtime library
  • Using /debug:parallel

When I hit F5, I get

---------------------------
- Application Error
---------------------------
The application was unable to start correctly (0xc000007b). Click OK to close the application.
---------------------------
OK
---------------------------

This is because it is using the x86 openmp library and the pdbx.dll. I am not statically linking against OpenMP (ie: I do not specify the .lib in my linker parameters).

Specifically these are my compile derectives:

/c /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /EHsc /RTC1 /RTCc /MDd /GS /fp:strict /Fo"x64\Debug/" /W3 /nologo /Wp64 /ZI /Qopenmp /debug:parallel /debug:expr-source-pos

And link:

mkl_intel_lp64.lib mkl_intel_thread.lib mkl_core.lib libmmdd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /MACHINE:X64

Thanks for the help.

0 Kudos
Rob_Mueller-Albrecht
733 Views

Ah ok - sorry, I misunderstood at first .....

this is truly odd though. Let me check with the integration specialists in our development team. This sounds as though for some reason the Visual Studio integration isn't installing quite right.

I'll get back to you as soon as I hear back from them. I am afraid that may not be today any more :-(.

Thanks, Rob

0 Kudos
sigmac2
Beginner
733 Views

---------

also should mention that I have, as far as I can tell, set up the search link paths correctly under tools->options->projections and solutions->VC++ Directories->platform x64->library files.

C:\Program Files (x86)\Intel\Parallel Studio\Composer\lib\intel64

---------

That would have been my next question. Are the 64bit library paths also in the system path (which I don't think may happen automatically either)?

Right now on an Intel64 system using a simple Hello-World type OpenMP app everything seems to work the way it is intended to on our setups ....

Wondering whether there is some strange interaction with MKL going on ....

Since based on our own tests this seems to be a bit more complicated than just a plain installation problem - do you think you can share a testcase based on your application with us?

You can either attach it to this thread (there are some privacy options) or if you prefer we can move this discussion to Intel Premier Support ....

Thanks, Rob

0 Kudos
JenniferJ
Moderator
733 Views

Could you check this?

Open a "cmd" window, and check the "path" env. It probably have the "[intelc-install-dir]\lib\ia32" dir at the begining.

When hit "F5" to start debugging, the debugging process will use the "cmd" environment setting. So the IA32 pdx.dll is used (not the IA32 .lib is linked).

To correct the problem, add the "intel64" dir in front of the "path".

Please let us know if this solves the issue.

Jennifer

0 Kudos
JenniferJ
Moderator
733 Views

Maybe different OS reports different errors. I can duplicate the following error on x64 WinServer2008 R2 with VS2008:

The error only comes up when I set the project property "Configuration Properties-> Debugging -> Merge Environment" to "No". If setting it to "Yes", it works.

Please check if this is your case as well.

Jennifer

0 Kudos
sigmac2
Beginner
733 Views
Huh...I didn't get any email notifications for this thread after the first one! Sorry about not replying. I will try this and report back, as it seems like a good solution.
0 Kudos
Reply