- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
We have an application that worked well until 3 weeks ago. Specifics are:
- User interface is written in Qt 4.7.3
- Included is a C++ interface to underlying Fortran code
- Fortran code is built against Multi-threaded DLL runtime library
(Fortran 9.1 compiler)
- Visual Studio 2005 IDE
Nothing has changed in any of the source code or underlying Fortran
runtime library.
Using Microsoft Application Verifier the Visual Studio Debugger,
WinDbg Debugger, and Intel Debugger all show the following when the debug
version of this application is run:
=======================================
VERIFIER STOP 00000301: pid 0x16F8: Invalid TLS index used for current stack trace.
00000000 : Invalid TLS index.
0000ABBA : Expected lower part of the index.
00000000 : Not used.
00000000 : Not used.
=======================================
This verifier stop is continuable.
After debugging it use `go' to continue.
=======================================
When running in release mode the application crashes outright. Stack trace for
both cases (debug and release) are similar (offsets differ). Debug stack trace
(WinDbg) is:
vrfcore!VerifierStopMessageEx+0x4d1 (FPO: [Non-Fpo]) <- application verifier
vfbasics!CheckTlsIndex+0x65 (FPO: [1,0,0]) "
vfbasics!AvrfpTlsGetValue+0x40 (FPO: [1,0,4]) "
Warning: Stack unwind information not available.
Following frames may be wrong
libifcoremdd!for_set_reentrancy+0x3a5 <- fortran run time
libifcoremdd!for_set_reentrancy+0x300 "
libifcoremdd!fq_settextposition+0x7e9 "
libifcoremdd!for_read_int_fmt+0x23 "
RdfaD8!RDFRSR <- our stuff
RdfaD8!rdfrsr "
RdfaD8!build_tac "
RdfaD8!rdfcmpg "
ThRDF!paramDpRDF::lookup "
Does this ring a bell with anyone? Anyone else having trouble with
invalid TLS Indices?
thx
- User interface is written in Qt 4.7.3
- Included is a C++ interface to underlying Fortran code
- Fortran code is built against Multi-threaded DLL runtime library
(Fortran 9.1 compiler)
- Visual Studio 2005 IDE
Nothing has changed in any of the source code or underlying Fortran
runtime library.
Using Microsoft Application Verifier the Visual Studio Debugger,
WinDbg Debugger, and Intel Debugger all show the following when the debug
version of this application is run:
=======================================
VERIFIER STOP 00000301: pid 0x16F8: Invalid TLS index used for current stack trace.
00000000 : Invalid TLS index.
0000ABBA : Expected lower part of the index.
00000000 : Not used.
00000000 : Not used.
=======================================
This verifier stop is continuable.
After debugging it use `go' to continue.
=======================================
When running in release mode the application crashes outright. Stack trace for
both cases (debug and release) are similar (offsets differ). Debug stack trace
(WinDbg) is:
vrfcore!VerifierStopMessageEx+0x4d1 (FPO: [Non-Fpo]) <- application verifier
vfbasics!CheckTlsIndex+0x65 (FPO: [1,0,0]) "
vfbasics!AvrfpTlsGetValue+0x40 (FPO: [1,0,4]) "
Warning: Stack unwind information not available.
Following frames may be wrong
libifcoremdd!for_set_reentrancy+0x3a5 <- fortran run time
libifcoremdd!for_set_reentrancy+0x300 "
libifcoremdd!fq_settextposition+0x7e9 "
libifcoremdd!for_read_int_fmt+0x23 "
RdfaD8!RDFRSR <- our stuff
RdfaD8!rdfrsr "
RdfaD8!build_tac "
RdfaD8!rdfcmpg "
ThRDF!paramDpRDF::lookup "
Does this ring a bell with anyone? Anyone else having trouble with
invalid TLS Indices?
thx
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I find a lot of hits using a Google search for the error text. Some of the links I followed suggested heap or stack corruption, and another suggests that there was an invalid call to TLSSetValue. Seems unlikely to me that this is related to your Fortran code, though you might be corrupting data by doing something invalid in Fortran (array out of bounds, mismatched types, etc.)
You have several layers in your application so it may be tricky to track down which is the culprit. Often with this sort of thing the trigger for the problem is far removed from where it gets reported.
You have several layers in your application so it may be tricky to track down which is the culprit. Often with this sort of thing the trigger for the problem is far removed from where it gets reported.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page