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

Access to symbols from PDB/OBJ files under Windows

Ben136KBC
Novice
379 Views

We are using: Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 16.0.2.180 Build 20160204, And Visual Studio 2022 C++.

Our code is native, 64 bit, consisting of C/C++ and Fortran. We compile the Intel Fortran files to standard OBJ files and link them into DLLs along with C++ objs and C++ runtime libraries, all works well.

Under Visual Studio Code, there is the C/C++ extension from Microsoft and a Modern Fortran extension. The latter essentially just uses the MS C/C++ extension for symbols, and that uses the cppvsdbg tool from Microsoft to get symbols, and the latter tool is NOT open source.

Now in many cases, you see symbols for Intel Fortran. See the attached screenshots, but in some cases it does not work.

So my question is:

1) How does Intel Fortran store debug symbol information in the OBJ and PDB files. It must be similar to C++ but different in some ways?

2) If we want to improve the Modern Fortran extension to better support Intel, and say we want to look up a symbol value, how do we do that, do we use the MS symbol provided and modify the symbol somehow?

I have been in communication with Microsoft and the C/C++ Visual Studio Code extension developers and the developers of the Modern Fortran extension. They pretty much all say we need to get information from Intel about the symbols to better support it.

I tried to log this request with Intel Support, but it said that all support is now done through this channel. We are a commercial Intel Fortran client with many licenses.

If one of the compiler developers looks at this he may be able to go "Oh it almost works, you just have to xxxx"...

0 Kudos
1 Solution
Steve_Lionel
Black Belt Retired Employee
345 Views

If you have current paid support, then you can file tickets with the Intel Online Service Center. However, you're not asking for assistance with a product problem but rather want some internal details of how the compiler works. I'd think that's "out of scope" for support.

Intel does use the Microsoft debug format, but obviously has a number of Intel extensions to represent Fortran things that don't have correspondence with C. I have never seen a document describing these and the information is not public.

That said, it's POSSIBLE that Intel might help you here. Maybe, one of the Intel support engineers will see your request and pass it on. That's, I think, the best you can hope for.

View solution in original post

2 Replies
Steve_Lionel
Black Belt Retired Employee
346 Views

If you have current paid support, then you can file tickets with the Intel Online Service Center. However, you're not asking for assistance with a product problem but rather want some internal details of how the compiler works. I'd think that's "out of scope" for support.

Intel does use the Microsoft debug format, but obviously has a number of Intel extensions to represent Fortran things that don't have correspondence with C. I have never seen a document describing these and the information is not public.

That said, it's POSSIBLE that Intel might help you here. Maybe, one of the Intel support engineers will see your request and pass it on. That's, I think, the best you can hope for.

Steve_Lionel
Black Belt Retired Employee
339 Views

It's also possible that the interface is provided to Intel under a license, and that they aren't free to share the details. Can't hurt to ask.

Reply