Crash Offsets
-
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.
-
I can’t test this for a couple of hours, but we have an entry for:
[Commodity] nickname = commodity_bounty_voucher ids_name = 524505 ids_info = 524506 units_per_container = 1 pod_appearance = cargopod_blue loot_appearance = lootcrate_blue decay_per_second = 0 volume = 0 hit_pts = 250
in st_equip.ini and a goods.ini entry for it. They’re in NPC cargoholds right now (and don’t seem to drop, but perhaps that’s another issue)
Could this be doing it?
-
Removing reference to the new commodity doesn’t seem to fix the crash. When you say commodities for jobs, do you mean the stuff that npcs drop as mission objectives to capture/destroy or something else?
-
So I’ve isolated this to rmlootprops.ini. We removed some entries (as various guns are not being used anymore and we don’t want them to drop)
I’m not entirely sure what’s causing it to crash, but it seems if certain things are made unavailable (notably if I change the faction to a placeholder one) the bar crashes the game/server. I guess I’ll adjust drop rates using the lootable flag rather than using this file.
-
03954990 ((module-name not available)): (filename not available): IServerImpl::DumpPacketStats Source: D:\Games\Aftermath\EXE\SERVER.dll RelExpAddr: 0x702064 ExpCode: 0x3221225477 ExpFlags: 0 ExpAddress: 0x03954990
Triggered by warping to a base that doesn’t have a physical presence, but has an mbase and universe entry, I think.I was warping to st03b_01_base for testing.
-
One to add from Laz’s crash hopper:
0E99458F ((module-name not available)): (filename not available): IDLL::operator= Unhandled Exception! -- Important Information -- Source: C:\Program Files (x86)\Microsoft Games\Freelancer\dlls\bin\Content.dll RelExpAddr: 0x526961 ExpCode: 0x3221225477 ExpFlags: 0 ExpAddress: 0x0E99458F Please report!
Patrol encounter contains a faction that is not defined in the related base’s [BaseFaction] entries.
-
Found a pretty weird one
Faulting application name: Freelancer.exe, version: 1.0.1223.11, time stamp: 0x3e401b79 Faulting module name: Common.dll, version: 1.0.1223.11, time stamp: 0x3e401cd3 Exception code: 0xc0000005 Fault offset: 0x0004aa02 Faulting process id: 0x57c4 Faulting application start time: 0x01d6250f11a08173 Faulting application path: E:\freelancer - Copy\EXE\Freelancer.exe Faulting module path: E:\freelancer - Copy\EXE\Common.dll Report Id: 5f2ff1c2-ff4e-4c35-a15c-8bee5b355791 Faulting package full name: Faulting package-relative application ID:
It happened when an NPC that was using a weapon that’s model wasn’t actually set to be a gun model is destroyed.
Instead of the gun set to use the li_rad_launcher it was set to use the li_rad_missile model. -
I’ve done my best to collate the offsets in this thread into a wiki page. Still a bit of a mess, and I’ve probably missed a few. Please feel free to add/adjust stuff as you all see fit! Figured it’d be a bit easier to search through this page than the entire thread.
https://the-starport.net/modules/mediawiki/index.php/Crash_Offsets
-
Looks good. Maybe omitting the 0x prefix as in the Limit Breaking 101 wiki looks nicer?
-
I’ll have a look at it! There’s a few offsets here that I haven’t put in as I’m not really familiar with converting from relative to absolute/etc and not want to completely muck things up. If anyone who’s a bit more knowledgeable feels like adding stuff I missed that’d be really great.
-
I like the 0x part for copying to my code purposes. Time saver.