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

Traceback while debugging a DLL

onkelhotte
New Contributor II
1,328 Views
Hi there,

when running in debug mode, I cannot see the lines, where inside a DLL the program crashes. The error message window only tells me, in which line the hosting process was stuck (where the subroutine of the DLL was being called).

This DLL is part of my solution, so the source code is available.

Do I have to set certain options other than Generate Traceback Information?

Im using the latest XE compiler with VS2010 on Win7 64-bit. The Command Line of my project is
/nologo /debug:full /Od /I"C:\\Users\\PIMA\\Documents\\Visual Studio 2010\\Projects\\DFC\\Source\\Protex\\Debug" /DDebug /debug-parameters:all /warn:declarations /warn:unused /warn:interfaces /Qfp-stack-check /module:"Debug\\\\" /object:"Debug\\\\" /Fd"Debug\\vc100.pdb" /traceback /check:all /libs:dll /threads /dbglibs /c /MP /Qprec-div /Qprec-sqrt /assume:protect_parens

Thanks in advance,
Markus
0 Kudos
6 Replies
SergeyKostrov
Valued Contributor II
1,328 Views
Quoting onkelhotte
...
This DLL is part of my solution, so the source code is available.

[SergeyK] Did you buildthe DLLin aDebug configuration?

...


Best regards,
Sergey

0 Kudos
onkelhotte
New Contributor II
1,328 Views
Yes, it is build as a debug configuration (debug multithreaded dll, /debug:full, /traceback, /check:all).

I can debug it and step through the code, but when it comes to an error, the traceback only shows me the line, where the executable has called the dll routine (see attached picture).

Markus
0 Kudos
SergeyKostrov
Valued Contributor II
1,328 Views
Hi Markus,

It looks like a debugger's feature, or a bug? Did you try to contact to theIntel PremierSupport?

Best regards,
Sergey
0 Kudos
onkelhotte
New Contributor II
1,328 Views
Not yet..

Markus
0 Kudos
Steven_L_Intel1
Employee
1,328 Views
I can't reproduce this. At first I thought it might happen if the executable project was built with a different setting for the run-time library than the DLL, but even if I make these different I get the DLL line number in my traceback. I have attached a ZIP of a solution that demonstrates this, and when I run it I get:

[plain]forrtl: severe (408): fort: (2): Subscript #1 of the array ARRAY has value 11 wh
ich is greater than the upper bound of 10

Image              PC        Routine            Line        Source
libifcoremdd.dll   100A9A00  Unknown               Unknown  Unknown
libifcoremdd.dll   100921CF  Unknown               Unknown  Unknown
libifcoremdd.dll   1001CFD7  Unknown               Unknown  Unknown
libifcoremdd.dll   1001D733  Unknown               Unknown  Unknown
Dll1.dll           5B7810ED  _DLLSUB                     6  Source1.f90
U102863.exe        00C71037  _MAIN__                    22  U102863.f90
U102863.exe        00C71CB3  Unknown               Unknown  Unknown
U102863.exe        00C7137F  Unknown               Unknown  Unknown
U102863.exe        00C711AF  Unknown               Unknown  Unknown
kernel32.dll       7501339A  Unknown               Unknown  Unknown
ntdll.dll          773B9EF2  Unknown               Unknown  Unknown
ntdll.dll          773B9EC5  Unknown               Unknown  Unknown[/plain]
0 Kudos
onkelhotte
New Contributor II
1,328 Views
It was something in the DLLs project settings. When I examined the DLL Shared Data Sample I found out, that there was a traceback.

Then I compared the project settings. I havent had the linker option /INCREMENTAL:NO. Leaving this to default prevents the traceback output.

Thanks for all your help!

Markus
0 Kudos
Reply