Crash Offsets
-
I’m pretty confident it’s a ship loadout - the crash occurs after [c]Loadout::Get[/c] (presumably returning [c]NULL[/c]), called when a ship is created ([c]int pub::SpaceObj::Create(UINT &,const pub::SpaceObj::ShipInfo &)[/c]). Perhaps there’s a typo in a ship? Nothing in the spew?
-
I think I had some issues once relating to a pilot somehow. Might want to get rid of all loadouts for all your encounters and see if the problem persists. If it does, look at your pilots.
If the problem goes away, start adding loadouts back in until the crashes resume.
-
As loadouts.ini is clean I can only assume its a typo in an encounter. Wouldn’t this cause output in flspew though?
I’ll take a bit of time to pull the mod apart and check for typos and report back.
-
Fixed this, but I have a new problem! The server app silently crashes on start (but only on my local machine) Offset is 0x00001c54 in flserver.exe. It doesn’t seem consistent either. Sometimes it starts, sometimes it crashes:
Faulting application name: FLServer.exe, version: 1.35.1254.11, time stamp: 0x3ecbb13e Faulting module name: jflp.dll, version: 1.2.0.3, time stamp: 0x5d9fe6dd Exception code: 0xc0000005 Fault offset: 0x00001c54 Faulting process ID: 0xec4 Faulting application start time: 0x01d5e0d19a65c16e Faulting application path: C:\Program Files (x86)\Microsoft Games\Freelancer\EXE\FLServer.exe Faulting module path: C:\Program Files (x86)\Microsoft Games\Freelancer\EXE\jflp.dll Report ID: 6e4291ec-560f-49ab-a349-6bf8a0fcee33 Faulting package full name: Faulting package-relative application ID:
-
I feel a bit silly here, but bizarrely this still occurs even when I comment jflp.dll out of dacom.ini! Feel like I’m missing something extremely obvious >.<
-
jflp.dll isn’t defined in dacomsrv.ini either! I’ve mostly left that alone and the only non-vanilla dll files defined in there are FLHook and your excellent Ammo Limit plugin.
-
FLHook starts loading, but flserver seems to crash while it’s trying to load the name cache. What’s really confusing about this is it’s very inconsistent. I just had to start flserver 4 times to try and get it to crash!
It’s got to be something on my system. It’s not the end of the world as the server runs and starts just fine on our vps. It makes local testing a bit of a pain, but I was mostly just a bit concerned I’d introduced something that’s going to cause more problems down the line.
-
The crash is when JFLP removes the “Used Hostile Pick Assistance” message - flserver.exe isn’t as big as freelancer.exe, so that memory doesn’t exist. If jflp.dll is always being loaded and flserver.exe isn’t always crashing, then it must be overwriting something that gets allocated; the alternative is that jflp.dll isn’t always being loaded.
-
That’s very odd! We’ve not made any adjustments to flserver at all bar a version number change. jflp.exe isn’t being called in the server console as far as I can see.
A bit of an aside, How, in 2019 are you building jflp.dll with VC6? I want to play around with it a bit and see if I can understand it better, but I cannot for the life of me get it to build in Visual Studio. It seems to very consistently give me a line about there being too few arguments for call on line 319 so I assume I’m missing something important.
-
Got it compiling, thanks!
New puzzle on this fault. If I physically remove jflp.dll from the EXE folder before I start the server client, I get this:
Faulting application name: FLServer.exe, version: 1.35.1254.11, time stamp: 0x3ecbb13e Faulting module name: AmmoLimit.dll, version: 1.0.0.1, time stamp: 0x52830b5b Exception code: 0xc0000005 Fault offset: 0x000013cb Faulting process ID: 0x133c Faulting application start time: 0x01d5e2414c11f657 Faulting application path: C:\Program Files (x86)\Microsoft Games\Freelancer\EXE\FLServer.exe Faulting module path: C:\Program Files (x86)\Microsoft Games\Freelancer\EXE\AmmoLimit.dll Report ID: 73b6b356-0539-4259-a3e6-1edad36ee994 Faulting package full name: Faulting package-relative application ID:
However, if I remove both, the application still faults, citing jflp as the issue. Any ideas?
EDIT: commenting out flhook.dll actually seems to stop the crash. Have to assume this means it’s something hook-related, which is probably out of the scope of this thread.
EDIT2: Leaving ammolimit.dll in still crashes the server! Console gets a line off about how it can’t load the dll and is ignoring it, then a few seconds later, the application faults again. -
If you’ve deleted EXE\jflp.dll, but that’s still crashing, then it must be loaded from somewhere else; if removing flhook.dll stops the crash, then at a guess it’s in EXE\flhook_plugins.
AmmoLimit has a simple check to detect if it’s running on the server or the client - it tests if the client memory exists. Apparently it sometimes exists on your server, too, so it’s incorrectly making the client patches. If you’d like it to be a bit more robust, change:
if (ProtectX( ADDR_LIMIT1, 6 )) { ```to:
if (GetModuleHandle(“freelancer.exe”))
{
ProtectX( ADDR_LIMIT1, 6 ); -
I managed to catch the AmmoLimit.dll error on the console when FLHook crashed as well, so it looks like this might be the root cause.
When attempting to compile AmmoLimit from source, VS doesn’t seem to be able to find Common.lib. Is this the library used for compiling your tools listed on your website, or something more generic? Sorry if these questions are very obvious, C++ is very new to me and I’m only just really stepping into this stuff.
-
It’s generated as part of the build process, via the makefile. I think newer compilers need to explicitly install that (look for something with “make” in the name), then on the command line type [c]nmake /nologo[/c]. I’m not sure if you could import the makefile, generating a solution.
-
Nmake did it, thanks Adoxa! This seems to have (touch wood) fixed my crash-on startup problem. However, I now have a new issue. flserver consistently crashes with offset 0x00001c54 in jflp.dll again whenever I exit to the menu or character select screen and is doing it whether or not flhook.dll is present in dacomsrv.ini. At least it’s consistent this time!
Any ideas? I am completely at a loss figuring out what is causing flserver to behave in this way.
-
Hello it’s me again!
Never got to the bottom of the odd jflp offset, but it doesn’t seem to happen on the server or anyone else’s machine so it’s not a big worry for the moment. However, we’ve got another rather odd problem:
When players on the server enter (almost any) pirate bar, the server crashes with a fault in content.dll with no console output:
Faulting application name: FLServer.exe, version: 1.35.1254.11, time stamp: 0x3ecbb13e Faulting module name: Content.dll, version: 1.0.1254.11, time stamp: 0x3ecbb142 Exception code: 0xc0000005 Fault offset: 0x000f7c2f Faulting process id: 0x228c Faulting application start time: 0x01d5eb5b9a73ff11 Faulting application path: C:\Freelancer\EXE\FLServer.exe Faulting module path: C:\Freelancer\dlls\bin\Content.dll Report Id: ef1eba63-3da5-41f7-b5ad-2784fb0efded Faulting package full name: Faulting package-relative application ID:
Any ideas? It’s definitely not diff2money.ini, loadouts.ini or mbases.ini causing the problem as far as we can tell, and we’ve otherwise not changed anything in relation to factions, bars or bases at all.
Edit: The same bars crash to desktop in SP as well, with no spew output.