mekakic
2011-01-21, 13:46:07
Ich verwende ein C Lib in meinem C++ Programm und beobachte ein Verhalten, was ich sehr eigenartig finde. Die C Lib wird meines Wissens richtig initialisiert und wenn es ans eingemachte geht, schlägt bei erstmaligem Call eine "Unbehandelte Ausnahme" bei mir im Debugger auf. Der Debugger springt dann mit seinem Ausführungskontext (der grüne Pfeil im VS Debugger:)) zum return einer völlig anderen Methode der Klasse, die gar nicht aufgerufen wird oder wurde. Da kann man dann unterbrechen oder weiterlaufen lassen. Die Applikation läuft dann auch weiter und scheint das richtige zu tun, was mir aber gefährlich vorkommt. Danach ist allerdings beim Debugger die aktuelle Codeposition (wo man sich gerade befindet) nicht immer richtig und danach hatte ich auch schon einige Male einen Visual Studio Absturz.
Die Operationen der C-Lib hab ich in einem try{
//call
} catch(...)
{
//
}
Block drin ... wo normalerweise Speicherfehler auch drin gelandet sind, aber hier passiert nichts. Auf der Konsole wird nur ausgegeben:
HEAP[app.exe]: Invalid Address specified to RtlFreeHeap( 01BB0000, 0444006B )
Unbehandelte Ausnahme bei 0x7c91120e in app.exe: Benutzerhaltepunkt.
Hat jemand eine Idee, was da schief läuft?
Die Operationen der C-Lib hab ich in einem try{
//call
} catch(...)
{
//
}
Block drin ... wo normalerweise Speicherfehler auch drin gelandet sind, aber hier passiert nichts. Auf der Konsole wird nur ausgegeben:
HEAP[app.exe]: Invalid Address specified to RtlFreeHeap( 01BB0000, 0444006B )
Unbehandelte Ausnahme bei 0x7c91120e in app.exe: Benutzerhaltepunkt.
Hat jemand eine Idee, was da schief läuft?