Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

64-bit debugger

ocean
Beginner
756 Views
Steve,

I have a question regarding the IVF 10.0/VS2005 development environment. I'm migrating a c++/Fortran application to the 64-bit compiler, and I have noticed that in debug mode, when I place the mouse on a function name, a 32-bit hexadecimal number (i.e. #45C46D) is displayed, which I think is the address of the function. Shouldn't this address be a 64-bit number, since the environment has been configured for the 64-bit compiler?

Thanks
0 Kudos
7 Replies
Steven_L_Intel1
Employee
756 Views
When you say "the environment has been configured for the 64-bit compiler", what do you mean? To build a 64-bit application you must create a new project configuration with a target platform of "x64". If what you did was go into Tools > Options > Intel Fortran and "changed" the compiler, that did not configure anything.

With the project open, select Build > Configuration Manager. Change "Active Solution Platform" to "". A new dialog appears, The first option is labeled "Type or select the new platform". If "x64" is not already shown, or is not present in the list, stop as you have not installed the VS x64 support. If it is, click OK and then Close. Now you'll see that the Solutions Platforms dropdown at the top of the project (to the right of "Debug" or "Release" has changed from Win32 to x64. NOW you're ready to build a 64-bit app.



0 Kudos
ocean
Beginner
756 Views
Quoting - ocean
Steve,

I have a question regarding the IVF 10.0/VS2005 development environment. I'm migrating a c++/Fortran application to the 64-bit compiler, and I have noticed that in debug mode, when I place the mouse on a function name, a 32-bit hexadecimal number (i.e. #45C46D) is displayed, which I think is the address of the function. Shouldn't this address be a 64-bit number, since the environment has been configured for the 64-bit compiler?

Thanks

Steve,

Both compilers are properly configured inside of Visual Studio. When I compile the Fortran code, IVF displays "Compiling with Intel Fortran Compiler 10.0.025 [Intel 64]." But I still wonder why the debugger shows a 32 bit addressfor the highlighted function.

Thanks
0 Kudos
jimdempseyatthecove
Honored Contributor III
756 Views

When using Visual Studio click on the little arrow to the right of "Win32", select Configuration Manager. select New Configuration from the pull down, pick x64 and reply Yes to the based on Win32. Initially you will likely be doing this for the Debug configuration, you will have to remember to do this for the Release configuration (and any other configurations you have).

Note, this requires that you have the x64 version of the compiler installed on your system.

From there try a build and check for errors. Depending on your application you may have nothing, to little, to significant changes to perform.

If you are not mixed language and if your application is using the standard Fortran libraries then you might be pleasently surprised that this is all you need to do. If you have other 3rd party libraries you may need to declare the paths to the x64 libraries etc...

My first conversion of a 13 project solution with 750 files went relatively smoothly. Other than $(Platform) to the paths to where the .MOD files were located I had no additional changes.

Note, older Win32 only applications used to build to

ProjectPathDebug

Consider changing this to

ProjectPathx32Debug
ProjectPathx64Debug

(same for Release) then you will have symmitry between x32 and x64 platforms (and others if you have them too).

Good luck

Jim Dempsey
0 Kudos
ocean
Beginner
756 Views
When you say "the environment has been configured for the 64-bit compiler", what do you mean? To build a 64-bit application you must create a new project configuration with a target platform of "x64". If what you did was go into Tools > Options > Intel Fortran and "changed" the compiler, that did not configure anything.

With the project open, select Build > Configuration Manager. Change "Active Solution Platform" to "". A new dialog appears, The first option is labeled "Type or select the new platform". If "x64" is not already shown, or is not present in the list, stop as you have not installed the VS x64 support. If it is, click OK and then Close. Now you'll see that the Solutions Platforms dropdown at the top of the project (to the right of "Debug" or "Release" has changed from Win32 to x64. NOW you're ready to build a 64-bit app.




I did create a project using my 32-bit code, and following the steps you highlighted above.
0 Kudos
Steven_L_Intel1
Employee
756 Views
Jeff Arnold informs me that the debugger will indeed show 32-bit values for addresses in this context, even in a 64-bit application. This is considered a bug, but a low priority one.
0 Kudos
jimdempseyatthecove
Honored Contributor III
756 Views

It would appear that you are using the 64-bit compiler to produce a 32-bit applicaiton.

In Visual Studio, on the tool bar, to the right of the configuration name (Debug in this case) is the platform name. This should be x64 not Win32 nor x32. After you add or select the configuration, if you still have problems, go into the Configuration Manager (click on the pull-down button to the right of the configuration name), make sure x64 is the active configuration, then in the Configuration Manager, check for and make certain the x64 configuration is in the Selected for Build. i.e. the Configuraiton Manager will show a property sheet (looks like a spreadsheet) with each Project listed under titles

Project | Configuration | Platform | Build

For each of your projects (may be one or more), run through each Configuration (starting with Debug), insure you have a Platform named x64 (add a platform for x64 if not present using the pull-down arrow on right side of field containing the platform), and make sure the check box for Build (for the x64 platform is checked). Repeat for each project.

Jim Dempsey

0 Kudos
ocean
Beginner
756 Views
Jeff Arnold informs me that the debugger will indeed show 32-bit values for addresses in this context, even in a 64-bit application. This is considered a bug, but a low priority one.

I understand. I just wanted to make sure that there wasn't anything wrong with my settings.

Thanks
0 Kudos
Reply