#3320 closed defect (needsinfo)
[NEEDS INFO] 0AD Alpha 18 Crash on Start
Reported by: | Jérôme Kell | Owned by: | |
---|---|---|---|
Priority: | Should Have | Milestone: | |
Component: | Core engine | Keywords: | |
Cc: | Patch: |
Description
I was about to play it for fun as i encounterd that the exe crash while starting.
When i start it with Quickstart.bat it works but without sound.
My system is Windows 7 x64
I´ll add the Systeminfo.txt, the mainlog & a crashlog made with debugview.
Attachments (4)
Change History (19)
by , 9 years ago
Attachment: | mainlog.html added |
---|
by , 9 years ago
Attachment: | systeminfo.txt added |
---|
follow-up: 3 comment:1 by , 9 years ago
The very first line in 0ad's command line output has an error (the only one I could find):
[12276] HRT: activating HPET failed: Unknown error (-100022, 0xFFFFFFFFFFFE794A)
HPET means High Precision Event Timer I think.
Are you sure you started pyrogenesis.exe? Can you still reproduce the issue after rebooting?
Quickstart.bat
only contains this
start pyrogenesis.exe -quickstart
So it should be the same thing as starting the .exe file.
In Config.cpp
and Gamesetup.cpp
I could find the only queries of the quickstart argument:
if (args.Has("quickstart")) { g_Quickstart = true; g_DisableAudio = true; // do this for backward-compatibility with user expectations } if (!g_Quickstart) g_UserReporter.Initialize(); // after config if(!g_Quickstart) { WriteSystemInfo(); // note: no longer vfs_display here. it's dog-slow due to unbuffered // file output and very rarely needed. }
So having no sound is expected with the quickstart.
comment:2 by , 9 years ago
yes, i meant the pyrogenesis.exe and yes i can reproduce the error even after reboot
comment:3 by , 9 years ago
Replying to elexis:
[12276] HRT: activating HPET failed: Unknown error (-100022, 0xFFFFFFFFFFFE794A)HPET means High Precision Event Timer I think.
This error is generated in whrt.cpp
. Looking at the code tells me that this error wasn't the cause for the crash, as the program continued after the error with seemingly proper timer values:
/** * @return the newly created and unique instance of the next best counter * that is deemed safe, or 0 if all have already been created. **/ static ICounter* GetNextBestSafeCounter() { for(;;) { static size_t nextCounterId = 0; ICounter* counter = CreateCounter(nextCounterId++); if(!counter) return 0; // tried all, none were safe Status err = ActivateCounter(counter); if(err == INFO::OK) { debug_printf("HRT: using name=%s freq=%f\n", counter->Name(), counter->NominalFrequency()); return counter; // found a safe counter } else { wchar_t buf[100]; debug_printf("HRT: activating %s failed: %s\n", counter->Name(), utf8_from_wstring(StatusDescription(err, buf, ARRAY_SIZE(buf))).c_str()); DestroyCounter(counter); } } }
We need a crashdump to find out where it actually crashed. See http://trac.wildfiregames.com/wiki/ReportingErrors
comment:4 by , 9 years ago
I dont have any crashdumps, just the mainlog in the Appdata\Local & Game Logs folder, thats why i made a crashlog with debugview.
Now i mader another Debug file with Windebug, maybe that helps. its the debug.txt.
by , 9 years ago
comment:5 by , 9 years ago
According to the errors in your attachment, the symbol search path is not setup correctly, thats why it doesn't find most of the *.dll files (if I'm reading that file correctly).
The last two lines of the error tell you a possible solution to setup your debugger correctly:
You can troubleshoot most symbol related issues by turning on symbol loading diagnostics (!sym noisy) and repeating the command that caused symbols to be loaded. You should also verify that your symbol search path (.sympath) is correct.
comment:7 by , 9 years ago
Unfortunately I have never worked with that debugger, so I don't know any specifics.
You probably only have to tell the debugger where to find those missing DLL files. It says that you didn't specify a search path for the DLLs:
Symbol loading may be unreliable without a symbol search path
This should be the documentation: https://msdn.microsoft.com/en-us/library/windows/hardware/ff558829%28v=vs.85%29.aspx
Also a websearch for the error messages might return some useful results.
comment:8 by , 9 years ago
The HPET failing is "normal", at least I always get that error. Also those symbols failing to load is "normal", they aren't in SVN and Microsoft won't have them on their servers. It looks WinDbg is already searching the right places for symbols.
Can you get the call stack with ~* kp
?
Also, is the game failing to create a system_info.txt
in the log folder? I notice you attached a different info file.
comment:9 by , 9 years ago
yes the only file the game creates before it crashes is the mainlog. Nothing else.
I am not familiar with debugging it all so i dont know how to do the call stack.
comment:10 by , 9 years ago
If you already had the game open in WinDbg, you know most of the details :) Just run the ~* kp
command after it crashes.
comment:11 by , 9 years ago
Thats what happend after the ~+ kp command:
0:000:x86> ~* kp
. 0 Id: 2e14.2f44 Suspend: 1 Teb: 7efdb000 Unfrozen ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0044f7f4 771a1607 ntdll32LdrVerifyImageMatchesChecksum+0x96c 0044f970 771658ad ntdll32RtlUlonglongByteSwap+0x4017 0044f9c0 77159269 ntdll32RtlSetUnhandledExceptionFilter+0x50 0044f9d0 00000000 ntdll32LdrInitializeThunk+0x10
comment:12 by , 9 years ago
You still need to perform the earlier steps to set up the symbols, the way they were before, see also DebuggingOnWindows.
comment:13 by , 9 years ago
Milestone: | → Backlog |
---|
comment:14 by , 9 years ago
Milestone: | Backlog |
---|---|
Resolution: | → needsinfo |
Status: | new → closed |
Summary: | 0AD Alpha 18 Crash on Start → [NEEDS INFO] 0AD Alpha 18 Crash on Start |
comment:15 by , 8 years ago
Wonder if this could be related to #3660. We have found a problem and solution there. Do you have many sound devices by chance? (You can check by running misinfo32.exe from the start menu, looking in Components > Sound Device, copy paste the output here).
mainlog from the gamefolder