- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
I'm always using the "-traceback" option, so I can see immediately where to look for errors in my source file (because the number of the offending line in the source file is shown). Now I'm using IVF11.1.065 and, although the option is still on, line numbers are no longere present in the error message. Does anyone have a suggestion as to how to have these line numbers back in the error message? (I cannot look in the help files; seee my other post to this forum.)
Ссылка скопирована
- « Предыдущий
-
- 1
- 2
- Следующий »
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
===============
On Windows systems, the linker places the traceback information in the executable image, in a section named ".trace". To see which sections are in an image, use the command:
link -dump -summary your_app_name.exe
To see more detailed information, use the command:
link -dump -headers your_app_name.exe
On Windows systems, when requesting traceback, you must set Enable Incremental Linking in the VS .NET* IDE Linker Options to No.
==================
When I try this with my apps, I am getting in the detailed list that the count of line numbers in the image is zero.
I think this means that /traceback is broken.
David
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
With the test program
[fortran]program tbackI compile with the command
real :: x
integer :: i
do i=1,10
x=i-5
write(*,*)i,1.0/x
end do
end program tback[/fortran]
[bash]ifort /traceback /fpe0 tback.f90[/bash]and run, getting the traceback
[bash]This was done with the w_cprof_p_11.1.065 compiler.
1 -0.2500000
2 -0.3333333
3 -0.5000000
4 -1.000000
forrtl: error (65): floating invalid
Image PC Routine Line Source
tback.exe 00401092 _MAIN__ 6 tback.f90
tback.exe 00401A73 Unknown Unknown Unknown
tback.exe 00401251 Unknown Unknown Unknown
kernel32.dll 7C817077 Unknown Unknown Unknown[/bash]
If a program was built out of several objects and libraries, some of which were not compiled with /traceback, understandably on sees Unknown for the Routine, Line and Source entries in the traceback, as we can see even in my trivial example.
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
------
Wendy
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
This was certainly not the previous behaviour. I could distribute Release applications to my customers which would give a traceback on a runtime error, complete with routine name and line number. I thought there was an option to include the linenumber map in the executable, but not full debugging info.
David
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Just double checked and your right for Fortran it will do the PC to line number correspondence just with /traceback (not for C++).
There are some other options which disable traceback, here is the note from the documentation.
"On Windows systems, when requesting traceback, you must set Enable Incremental Linking in the VS .NET* IDE Linker Options to No. On systems using IA-32 architecture and Intel 64 architecture, you must also set Omit Frame Pointers (the /Oy option) in the Optimization Options to "No.""
------
Wendy
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Is there anything else that needs to be set? I tried forcing a zero divide in my application, and instead of getting a traceback, I only get a dialog asking if I want to open an instance of VS to debug - even when I run the application outside of VS. This is not the behaviour that I was aware of 1-2 years ago. Even adding
/debug:minimal does not change this behaviour.
All options from the compile are:
/nologo /Oy- /Qopenmp /warn:declarations /warn:unused
/module:"..\..\..\Modules\Release" /object:"..\..\..\Intermed\Release/"
/traceback /check:bounds /check:uninit /check:format /libs:static /threads /c
And for the link:
/OUT:"..\..\..\Executable\Release/Yieldmod.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST
/MANIFESTFILE:"C:\Dev\Executable\Release\Yieldmod.exe.intermediate.manifest"
/SUBSYSTEM:WINDOWS /OPT:NOWIN98 /FIXED:NO
/IMPLIB:"C:\Dev\Executable\Release\Yieldmod.lib" version.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 ..\..\..\Libraries\realwin.lib ..\..\..\Libraries\htmlhelp.lib
Thanks,
David
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
I tried to do this, but I cannot "reproduce" the lacking line numbers in a test program: the line numbers are just there. I added the "incremental:no" linker option; maybe that explains why all seems to be well now. (The missing line numbers "appeared" when an integer overflow occurred; with earlier IVF versions the line numbers were there.) So, for the time being, I leave this thread. Thank you for taking interest.
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
In a simple console program, I can now reproduce the line number traceback (added /fpe:0). However, I cannot get this to work for a full windows program. I simply get the Microsoft "*.exe has encountered a problem and needs to close. We are sorry for the inconvenience". On my development machine, instead, I get the dialog asking whether I want to start VS to debug the application. On neither machine can I get the Fortran dialog with the traceback info.
any ideas?
Thanks,
David
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
I tried to reproduce this with the quick win sample that ships with the product and I get two windows (one that gives the traceback and one that gives the dialog asking if I want VS to debug). Can I get a zipped up solution that demonstrates the lack of traceback.
Also traceback only works if the divide by zero is in the Fortran part of the code.
------
Wendy
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Here is the standard WinApp, with added lines to force a failure. I only get the "do you want to debug" dialog.
This in under WinXP SP3 / VS2005 / IVF 11.1.065
thanks,
David
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Thanks I can reproduce from your test case and I am reporting it to engineering. I will update this thread if I have any additional information (I am asking for a workaround) and/or a compiler that fixes the problem.
------
Wendy
Attaching or including files in a post
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Hello,
I am using Fortran Composer XE 2011 Update 6 and am also having problems with the traceback not producing a routine name or line number where a problem occurs. Has this been fixed or am I doing something wrong?
The compiler settings look like:
/Qdiag-disable:8290,8291,10155,10212,7334,7373,7025,7028,7372,6919,7416 /warn:noalignments
/real_size:64 /Qsave /align:rec1byte /fp:precise /iface:cvf /module:"Debug\Intermediate/"
/object:"Debug\Intermediate/" /Fd"Debug\Intermediate\vc100.pdb" /traceback /check:pointer
/check:bounds /check:uninit /check:format /check:output_conversion /libs:dll /threads /dbglibs /c
The linker settings look like:
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"Debug/t126gridv2.pdb" /MAP:"Debug\Intermediate/t126gridv2.map"
/SUBSYSTEM:WINDOWS /IMPLIB:"Debug/t126gridv2.lib" /DLL kernel32.lib Shared_Modules.lib
Thank you.
Bill
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
------
Wendy
Attaching or including files in a post
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Bill
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
Program Test
Real, Allocatable :: X(:)
Write(*,*) 'Test started'
Allocate(X(100))
X(200) = 0.0
Write(*,*) 'Test finished'
End Program Test
And use the standard Debug configuration under Visual Studio 2008. Just for reference
Fortran compilersettings:
/nologo /debug:full /Od /warn:interfaces /module:"Debug\" /object:"Debug\" /Fd"Debug\vc90.pdb" /check:all /libs:static /threads /dbglibs /c
Linker settiong:
/OUT:"Debug\Test.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"D:\VS2008\Test\Test\Debug\Test.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"D:\VS2008\Test\Test\Debug\Test.pdb" /SUBSYSTEM:CONSOLE /IMPLIB:"D:\VS2008\Test\Test\Debug\Test.lib"
But do I correctly understood that the problem is known but is not going to be fixed in the nearest future, not until the next year? If so, it is too bad.
Michael
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
If I enable /traceback in Visual Studio (2008) I am told to disable incremental linking in Linker General options and to disable omitting frame pointers. However, I cannot find the latter parameter in Fortran Optimization options as both Visual Studio's project configuration dialog and help on /traceback suggest.
If I add /Oy- to compiler additional options, I get a message that /Oy- is not supported. Help on /traceback claims /traceback sets the /Oy- option (automatically?) and there is also information (just few lines below) that /Oy- should be set in Optimization Options.
What am I doing wrong that I don't see the Omit Frame Pointers option? Is there a way to make /traceback work provided that my compiler options are
/nologo /fpp /fixed /extend_source:132 /Qopenmp /fpscomp:general /warn:declarations /warn:unused /warn:truncated_source /warn:interfaces /assume:byterecl /module:"x64\Release\" /object:"x64\Release\" /Fd"x64\Release\vc90.pdb" /traceback /libs:static /threads /c /align:all /heap-arrays
and my linker options are
/OUT:"x64\Release\MyApp.exe" /INCREMENTAL:NO /NOLOGO /DELAYLOAD:"Delay.dll" /MANIFEST /MANIFESTFILE:"...\MyApp.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:CONSOLE /STACK:100000000 /IMPLIB:"...\MyApp.lib" delayimp.lib .\DLL\x64\Delay.lib
Or do my options imply that I am running into any open issues to be resolved in a future release of Composer?
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
I see "Omit Frame Pointers" as a property on the Optimization page, fourth line. "No" is the default in a Debug configuration.
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом
When I switch to Fortran Optimization category, I see following items: Optimization, Inline Function Expansion, Favor Size or Speed, Loop Unroll Count, Parallelization, Threshold for Auto-Parallelization, Threshold for Vectorization, Prefetch Insertion, I/O Buffering, Heap Arrays, Interprocedural Optimization, Enable Matrix Multiply Library Call. These options are the same for Release and Debug configurations.
- Отметить как новое
- Закладка
- Подписаться
- Отключить
- Подписка на RSS-канал
- Выделить
- Печать
- Сообщить о недопустимом содержимом

- Подписка на RSS-канал
- Отметить тему как новую
- Отметить тему как прочитанную
- Выполнить отслеживание данной Тема для текущего пользователя
- Закладка
- Подписаться
- Страница в формате печати
- « Предыдущий
-
- 1
- 2
- Следующий »