ntdll.dll [Frames unten können falsch sein /fehlen, keine Symbole geladen für ntdll.dll]
seit ein paar Wochen nun habe ich in dieser situation und es sehr beunruhigend,
mein Programm debuggt sehr gut, keine Fehler, wenn ich das Programm starte tut es der erste Teil der
job, nach ein paar Sekunden bricht Er zu einer "Pause" weiter " - option und der call-stack, wenn ich sehe, es stellt sich heraus, dass es eine Fehlermeldung aus ntdll.dll und msvcr100d.dll
es scheint wie ein windows-zugehörige SDK-problem, wie es scheint, ein Ungültiger Zeiger zu.
Ich habe irgendwie keine Kontrolle über diese.
Ich installierte windows SDK 7.0, aber es scheint nichts zu ändern,
Mit : Windows 7 64-bit, Boost 1.48, Visual studio-compiler (full version), openCV2.3, c++.
Ich habe versucht, viele Optionen,
zB. zu gehen, um den task-manager, und mit einem rechten Mausklick auf devenv.exe und die Auswahl nur einer in der 'set affinity'
Neuinstallation von windows SDK,
Neuinstallation mehrmals mein eigenes Projekt.
Nichts hat mir geholfen, kann jemand mir empfehlen eine gute Lösung bitte.
für mehr Klarheit hier mein Aufruf-stack
ntdll.dll!77e615de()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!77e615de()
ntdll.dll!77e5014e()
msvcr100d.dll!_getptd_noexit() Line 500 C
ntdll.dll!77eb73bc()
ntdll.dll!77ea3c48()
ntdll.dll!77e5016e()
msvcr100d.dll!_getptd_noexit() Line 500 C
ntdll.dll!77eb74df()
ntdll.dll!77eb73bc()
ntdll.dll!77ea3c48()
ntdll.dll!77e5016e()
msvcr100d.dll!_getptd_noexit() Line 500 C
ntdll.dll!77eb74df()
ntdll.dll!77eb73bc()
ntdll.dll!77ea3c48()
ntdll.dll!77e5016e()
msvcr100d.dll!_getptd_noexit() Line 500 C
ntdll.dll!77eb74df()
ntdll.dll!77eb73bc()
ntdll.dll!77ea3c48()
kernel32.dll!770012ea()
kernel32.dll!77001314()
msvcr100d.dll!_getptd_noexit() Line 500 C
ntdll.dll!77eb74df()
ntdll.dll!77eb73bc()
ntdll.dll!77ea3c48()
ntdll.dll!77e5016e()
msvcr100d.dll!_getptd_noexit() Line 500 C
ntdll.dll!77e9b459()
ntdll.dll!77e9b42b()
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::clear() Line 1415 C++
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::erase(std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> > > _First, std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> > > _Last) Line 1383 C++
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::_Tidy() Line 1866 + 0x5d bytes C++
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::~_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >() Line 792 C++
bowExample.exe!std::set<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >::~set<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >() + 0x2b bytes C++
bowExample.exe!set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >::~set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >() + 0x63 bytes C++
bowExample.exe!set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >::`scalar deleting destructor'() + 0x2b bytes C++
bowExample.exe!boost::checked_delete<set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > >(set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > * x) Line 34 + 0x2b bytes C++
bowExample.exe!boost::scoped_ptr<set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > >::~scoped_ptr<set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > >() Line 80 + 0xb bytes C++
bowExample.exe!bowTest(CBoWIMUParams & BOWIMUPARAMS) Line 192 + 0xf bytes C++
bowExample.exe!main(int argc, char * * argv) Line 225 + 0xc bytes C++
bowExample.exe!__tmainCRTStartup() Line 555 + 0x19 bytes C
bowExample.exe!mainCRTStartup() Line 371 C
kernel32.dll!7700339a()
ntdll.dll!77e79ef2()
ntdll.dll!77e79ec5()
Hier ist der Aufruf-stack nach dem laden von Symbolen
ntdll.dll!_ZwRaiseException@12() + 0x12 bytes
ntdll.dll!_ZwRaiseException@12() + 0x12 bytes
msvcr100d.dll!__getptd_noexit() + 0xae bytes
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::clear() Line 1415 C++
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::erase(std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> > > _First, std::_Tree_const_iterator<std::_Tree_val<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> > > _Last) Line 1383 C++
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::_Tidy() Line 1866 + 0x5d bytes C++
bowExample.exe!std::_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >::~_Tree<std::_Tset_traits<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128>,0> >() Line 792 C++
bowExample.exe!std::set<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >::~set<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >() + 0x2b bytes C++
bowExample.exe!set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >::~set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >() + 0x63 bytes C++
bowExample.exe!set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> >::`scalar deleting destructor'() + 0x2b bytes C++
bowExample.exe!boost::checked_delete<set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > >(set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > * x) Line 34 + 0x2b bytes C++
bowExample.exe!boost::scoped_ptr<set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > >::~scoped_ptr<set2<CBoWMatch<int>,CBoWMatch<int>::MatchSort,CIndividualPool_NoFree_Allocator<CBoWMatch<int>,128> > >() Line 80 + 0xb bytes C++
bowExample.exe!bowTest(CBoWIMUParams & BOWIMUPARAMS) Line 193 + 0xf bytes C++
bowExample.exe!main(int argc, char * * argv) Line 216 + 0xc bytes C++
bowExample.exe!__tmainCRTStartup() Line 555 + 0x19 bytes C
bowExample.exe!mainCRTStartup() Line 371 C
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
ntdll.dll!___RtlUserThreadStart@8() + 0x27 bytes
ntdll.dll!__RtlUserThreadStart@8() + 0x1b bytes
Sie haben keine Kontrolle über diese? In der Regel ist die Antwort auf Fehler durch ungültige Zeiger wird nicht passieren Ungültiger Zeiger. Wenn es ein MS-bug (die halte ich für sehr unwahrscheinlich, aber nicht unmöglich), bitte zeigen Sie so, indem Sie eine einfache Anwendung, die offensichtlich ist bug-frei, aber die Ergebnisse in die Fehler, die Sie beschreiben.
Blick auf den unteren Rand der Spur, es sieht aus wie Sie haben eine Klasse
set2
, möglicherweise abgeleitet von std::set
. Ich würde beginnen, es, plus, was die Funktion bowTest
zu seiner scoped_ptr
. Die Chancen für das finden der Fehler da ist sehr höher als in der boost-oder der standard-compiler-Bibliothek.sarnold : I dont knw, wie dein link helfen, aber ich werde einen Blick auf Sie eng in ein paar Minuten
hvd : ich wünschte, es wäre so einfach, um es zu produzieren. am wichtigsten ist es sich in die boost-Header und dieser ist sehr Komplex, zu verstehen.Deshalb finde ich es schwierig. Ich werde sehen, ob ich es produzieren. Dank
InformationsquelleAutor Mahika | 2012-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klicken Sie rechts auf den stack-Linie (in dem stack-trace) mit ntdll.dll und laden Sie die debugging-Symbole vom Microsoft-server (Last Symbole aus...), dann wird der stack-trace wird wahrscheinlich ein bisschen ändern. Wiederholen Sie den Vorgang für jede dll, die mit undefinierten Symbole.
Bis Sie laden Sie die debugging-Symbole, die Sie sind wahrscheinlich auf der Suche an einer falschen stack-trace.
Versuchen Sie, wiederholen Sie den Vorgang für alle dlls mit keine Symbole
Die dlls in Benutzung sind ntdll.dll!_ZwRaiseException@12() + 0x12 bytes, msvcr100d.dll!__getptd_noexit() + 0xae bytes, und kernel32.dll!_UnhandledExceptionFilter@4() + 0x11d bytes
Können Sie re-post-der stack-trace, nachdem die Symbole wurden geladen?
InformationsquelleAutor Paolo Brandoli
Begann dies für mich ohne ersichtlichen Grund. Nach einem Blick auf die Projekt-Eigenschaften, die ich bemerkt das Arbeitsverzeichnis wurde irgendwie gelöscht (es war nur leer), nachdem Sie es wieder auf das richtige Verzeichnis alles wieder angefangen zu arbeiten.
Offensichtlich meine einfache Lösung vielleicht nicht für Sie arbeiten, ich hatte Glück.
InformationsquelleAutor EJ Thayer