Crash Offsets
-
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.
-
0x00012e10 in content.dll
0x062FFBEB in common.dllRelates to a bad NPC costume (inconsistent gender choices according to IDA) in mBases.ini. Many thanks to Laz for helping pin this one down.
-
0x0004fe6c in common.dll
CShip::Launch causes a CTD when the client and server don’t have matching base nicknames in the [Object] entry in a system INI. The client is the one that has the CTD.
Example:
Reproducible by running a vanilla v1.1 server and a JFLP v1.25 client and undocking from either Ronnenburg Base or Yanagi Depot. Client crashes immediately at undocking cutscene. If the inverse is performed, the same outcome is achieved.Reason:
Vanilla entry for Ronnenburg is nickname = Bw02_02_Base, JFLP v1.25 entry is nickname = Bw02_02
Vanilla entry for Yanagi Depot is nickname = Bw05_03_Base, JFLP v1.25 entry is nickname = Bw05_03Why:
FL multiplayer black magic?