Ogre stürzt ab
-
16:17:03: Texture: sdk_button_down.png: Loading 1 faces(PF_A8R8G8B8,128x32x1) with hardware generated mipmaps from Image. Internal format is PF_A8R8G8B8,128x32x1.
16:17:04: Uninstalling plugin: Bezier Patch SampleHier liegt irgendwo ein Problem. Eine Exception ist geflogen o.ä. (erinnere mich nicht genau, auf was solch ein Absturz hindeutet).
Sowas deutet oft auf ein Problem mit Ressourcen oder Plugins hin.
Track das ganze mal mit Checkpoints, dann dürftest du den Fehler finden.
-
ok ich meld mich, wenn ich weiss, wo genau es abstürzt.
-
ok ich komm gar nicht am ersten befehl vorbei.
einige sekunden, nachdem das Programm gestartet ist, gibt es diese Fehlermeldung:Program received signal SIGSEGV, Segmention fault.
-
static initialization order fiasco?
alterbro schrieb:
Program received signal SIGSEGV, Segmention fault.
Noch bevor die
main()
startet?
-
ja ich glaub schon, keine ahnung was da läuft
-
hey kanns du mir den link für mingw gcc 4.7.0 geben? ich glaub ich brauch genau die version und ich bin zu blöd diese version selbst zu finden. auf der hompage find ich irgendwie nur 4.6.2
-
Ich habe jetrzt mal die man umgeschrieben, doch das Programm stürzt trozdem ab:
#ifdef __cplusplus
extern "C" {
#endif#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char *argv[])
#endif
{
// Create application object
printf("fuu");#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#else
std::cerr << "An exception has occured: " <<
e.getFullDescription().c_str() << std::endl;
#endifreturn 0;
}langsam glaub ich, ich hab die falsche compilerversion.Denn im Tutorial heisst es, man könne mit 4.6.2 komilpieren, doch weiter unten bracuht man 4.7.0 oder 4.7.2 doch die kann ich nirgendwo finden. und die die ich finde, lässt code::blocks nicht kompilieren.
-
Also bitte. Wenn man einen Segfault bekommt sollte man doch wenigstens das bischen Selbstständigkeit haben und das Programm im Debugger starten.
Meistens sind die Probleme bei einen Blick in den Callstack sehr leicht ersichtlich.
-
Ethon schrieb:
Also bitte. Wenn man einen Segfault bekommt sollte man doch wenigstens das bischen Selbstständigkeit haben und das Programm im Debugger starten.
Meistens sind die Probleme bei einen Blick in den Callstack sehr leicht ersichtlich.Ach ja?
#0 6FC898B5 libstdc++-6!_ZNSsC1EPKcRKSaIcE() (C:\Windows\system\libstdc++-6.dll:??)
#1 680F7CF6 ZThn4_N4Ogre24FrameTimeControllerValueD1Ev() (C:\Windows\system\OgreMain.dll:??)
#2 68232EFE ZN4Ogre16StreamSerialiser9HEADER_IDE() (C:\Windows\system\OgreMain.dll:??)
#3 00000000 0x0028f9c3 in ??() (??:??)
#4 77D1D8C9 ntdll!RtlEmptyAtomTable() (C:\Windows\system32\ntdll.dll:??)
#5 67C01060 ??() (C:\Windows\system\OgreMain.dll:??)
#6 77D2681C ntdll!RtlStatMemoryStream() (C:\Windows\system32\ntdll.dll:??)
#7 00000000 0x0028fd24 in ??() (??:??)
#8 77D252D6 ntdll!TpCaptureCaller() (C:\Windows\system32\ntdll.dll:??)
#9 00000000 0x0028fd24 in ??() (??:??)
#10 77D19E79 ntdll!RtlpNtSetValueKey() (C:\Windows\system32\ntdll.dll:??)
#11 00000000 0x0028fd24 in ??() (??:??)
#12 00000000 0x00000000 in ??() (??:??)Was ist hier ersichtlich?
Ich kann mir vorstellen, dass er keine Debugging Symbole erstellen lässt...
-
Ja, es ist schöner wenn der Debugger einen Backtrace mit demangelten Namen und Zeilenangaben ausspuckt.
Es kracht btw in nem std::basic_string Konstruktor, der von Ogre aufgerufen wird.
-
Ethon schrieb:
Es kracht btw in nem std::basic_string Konstruktor, der von Ogre aufgerufen wird.
Echt? Woher weißt du das? :xmas1:
Aber das kann gut sein, Schließlich istOgre::String
nur eintypedef
aufstring
...
-
http://slush.warosu.org/c++filtjs/
-> _ZNSsC1EPKcRKSaIcE
-
das komische ist, das selbst wenn ich die main dadurch ersetze:
int main(){
printf("asdf");
getchar();
return 1;
}stürzt es ab, was ich mir einfach nicht erklären kann.
-
alterbro schrieb:
das komische ist, das selbst wenn ich die main dadurch ersetze:
int main(){
printf("asdf");
getchar();
return 1;
}stürzt es ab, was ich mir einfach nicht erklären kann.
Dann liegt es entweder an globalen Variablen oder an der DLL.
-
ok, irgend ein Vorschlag?
-
das seltsamste ist halt dieser Text:
"It should be populated properly, but it can't hurt to check. smile
Also make sure that the MinGW version Code::Blocks uses is the same that was used to compile the Ogre SDK (it is written in the SDK downloads section). Or at least compatible.
1.8.1 was compiled with GCC 4.7.0, but also seems to run fine if you use it with GCC 4.7.2.You can find out your version of MinGW by going to "C:\MinGW\lib\gcc\mingw32".
This folder will contain another folder with a version number. "Der je sagt, dass man fpr OGRE 1.8.1, die ich verwende gcc 4.7.0 braucht. doch nach der Webseite und Wikipedia gibt es erst 4.6.2.
Doch das beste kommt erst noch:
Wenn man Code::Blocks mit der mitgelieferten mingw installiert, und dann die Mingw version prüft, ist die bereits 4.7.1, die aber auch nicht funktioniert.
Kann sich das jemand erklären?
-
Der mitgelieferte MinGW ist ein TDM-GCC.
-
ok, kannst du mir sagen, wie ich meine Mingw-Gcc updaten kann?
-
mingw-update
mingw-install gcc
mingw-install g++
-
lach mich bite nicht aus, aber wie fühert man diese Befehle unter Windows aus?
Hab bisher mit vs gearbeitet