|
|
Mod Bug汇报
|
已解决
|
| 游戏版本: |
0.98 |
| Mod中文名: |
BoxUtil |
| Mod版本: |
1.6+ |
游戏日志:
没有打印日志,游戏挂起无响应需要强制关闭
经AI配合提供java debug工具打印确认问题为:
1.后台线程死锁等待(Phaser Sync Wait)
"Thread-8-AS-BUtil_RenderingThread" ...
- java.util.concurrent.Phaser.arriveAndAwaitAdvance()
- org.boxutil.backends.core.thread.BUtil_RenderingThread.runBody()
"Thread-9-AS-BUtil_LogicalThread" ...
- java.util.concurrent.Phaser.arriveAndAwaitAdvance()
- org.boxutil.backends.core.thread.BUtil_LogicalThread.runBody()
它们全卡在Phaser.arriveAndAwaitAdvance()。这意味着BoxUtil 在后台开启了多线程来并行计算战斗中的某些逻辑/渲染数据(例如敌舰爆炸时的碎片、渲染图层或逻辑回调),但其中一个子任务在敌舰爆炸时未能正常完成或抛出了未捕获的静默异常,导致Phaser 计数器无法归零,所有BoxUtil 工作线程永久挂起等待。
2.主线程陷入无限空转(Busy Loop)
与此同时,游戏主线程Thread-2正在死循环中等待后台数据准备完毕:
"Thread-2" ...
- com.fs.starfarer.combat.entities.Ship.setFacing(float)
因为主线程一直在重复调用setFacing等常规逻辑试图推进下一帧,没有触发异常抛出,所以游戏不会闪退,日志不会报错,但游戏画面会彻底卡死无响应。这就是为什么在控制台上看只有无休止的消息和最后几行BoxUtil清理内存的记录。
[游戏信息]
游戏版本: 0.98a-RC8
汉化版本: 2026.08.22
汉化分支: startup-optimization
[系统信息]
操作系统: Microsoft Windows 10 专业版
系统版本: 10.0.19045 暂缺 Build 19045
总可用内存: 7.95G
游戏Java版本: 17.0.10
游戏Java路径: M:gameSTARSECTOR-0.98A-RC8jre
工具运行Java版本: 17.0.10
工具运行Java路径: m:gamestarsector-0.98a-rc8jre
虚拟机参数: java.exe -noverify -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+ShowCodeDetailsInExceptionMessages -XX:+ExtensiveErrorReports -XX:+ShowMessageBoxOnError -XX:+PrintCommandLineFlags -XX:+TieredCompilation -XX:-UseCondCardMark -Xlog:async -XX:+UseFastStosb -XX:+AlwaysCompileLoopMethods -XX:TieredStopAtLevel=4 -XX:TrimNativeHeapInterval=60000 -XX:UseAVX=3 -XX:AVX3Threshold=0 -XX:UseSSE=4 -XX:+UseSSE42Intrinsics -XX:+UseCompressedOops -XX:+UseCompressedClassPointers -XX:+UseFMA -XX:+UseBMI1Instructions -XX:+UseBMI2Instructions -XX:+UseCLMUL -XX:+UseFastUnorderedTimeStamps -XX:+UseUnalignedLoadStores -XX:+UseXMMForArrayCopy -XX:+UseXMMForObjInit -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:+ParallelRefProcEnabled -XX:+UseShenandoahGC -XX:ShenandoahGCMode=iu -XX:ShenandoahGCHeuristics=compact -XX:ShenandoahAllocationThreshold=85 -XX:ShenandoahGuaranteedGCInterval=0 -XX:+ZeroTLAB -XX:+SegmentedCodeCache -XX:+AlwaysAtomicAccesses -XX:+UseStringDeduplication -XX:-DontCompileHugeMethods -XX:Tier0Delay=1 -XX:+UseFPUForSpilling -XX:+EnableVectorAggressiveReboxing -XX:+EnableVectorReboxing -XX:+EnableVectorSupport -XX:-AlignVector -XX:TieredOldPercentage=10000 -XX:Tier0ProfilingStartPercentage=2000 -XX:IncreaseFirstTierCompileThresholdAt=99 -XX:InterpreterProfilePercentage=99 -XX:+UseVectorCmov -XX:+UseVectorStubs -XX:ReferencesPerThread=0 -XX:MaxGCPauseMillis=10 -XX:-EnableThreadSMRStatistics -XX:+UseUnalignedAccesses -XX:PerMethodRecompilationCutoff=100000 -XX:ProfileMaturityPercentage=100 -XX:NmethodSweepActivity=1 -XX:ThreadPriorityPolicy=1 -XX:ReservedCodeCacheSize=256m -XX:+PrintCodeCache -XX:-UseDynamicNumberOfCompilerThreads -XX:CompilerDirectivesFile=./compiler_directives.txt -Djava.library.path=native\windows -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -Djava.util.Arrays.useLegacyMergeSort=true --enable-preview --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.nio.Buffer.UNSAFE=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.text=ALL-UNNAMED --add-opens=java.desktop/java.awt.font=ALL-UNNAMED --add-opens=java.desktop/java.awt.Rectangle=ALL-UNNAMED --add-opens=java.desktop/java.awt=ALL-UNNAMED --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED -Xmx3500m -Xms3500m -Xss4m -Dcom.fs.starfarer.settings.paths.saves=..\saves -Dcom.fs.starfarer.settings.paths.screenshots=..\screenshots -Dcom.fs.starfarer.settings.paths.mods=..\mods -Dcom.fs.starfarer.settings.paths.logs=. -classpath janino.jar;commons-compiler.jar;commons-compiler-jdk.jar;starfarer.api.jar;starfarer_obf.jar;jogg-0.0.7.jar;jorbis-0.0.15.jar;json.jar;lwjgl.jar;jinput.jar;log4j-1.2.9.jar;lwjgl_util.jar;fs.sound_obf.jar;fs.common_obf.jar;xstream-1.4.10.jar;txw2-3.0.2.jar;jaxb-api-2.4.0-b180830.0359.jar;webp-imageio-0.1.6.jar com.fs.starfarer.StarfarerLauncher
堆栈初始大小(`-Xms`): 3500m
堆栈最大大小(`-Xmx`): 3500m
[Mod信息]
Mod名称 |Mod版本 |已启用
=================================================================================
LazyLib |3.0.0 |是
zz GraphicsLib |1.12.1 |是
MagicLib |1.5.6 |是
[天船三星海物流] |0.7.0 |是
00 少女星域 |4.2.0 |是
AEF-阿瓦隆远征队 |Ver:0.6.7-Sub:2 (数据库校对 DatabaseReview)|是
BoxUtil |1.5.5 |是
CTB-星际小卖部 |0.5.7c |是
Demand Indicators 供需指示 |1.0.f |是
FarsightDrive |0.4.2.6-ver4 |是
FSF军事公司[FSF_MilitaryCorporation] |5.1rc1-02 |是
Kaleidoscope 万花筒 |1.0.e |是
LunaLib |2.0.5 |是
Phillip Andrada:加油站经理 |1.14.1aa |是
Portrait Changer 头像修改器 |1.0.7 |是
Random Assortment of Things |3.3.1 |是
SimpleIndustryOptionProvider 简单的工业设施选项|1.0.4 |是
SpeedUp |1.2.2 |是
世界之树科研殖民地[Scy Nation] |1.11.1 |是
光环动力舰船工业 |1.8.0-fix4 |是
势力争霸 [Nexerelin] |0.12.2c |是
北极星之首 [Polaris Prime] |0.4.3 |是
博尔肯基金会 [Foundation Of Borken] |0.9.0 |是
卢德骑士团 |1.4.0 |是
墨汁的mod溯源 |0.1.0a |是
天苑四-行星联合实业 li版 |1.4.4 |是
幅能光标 [Flux Reticle] |1.4.0 |是
弧光设计局 [Arc Light Bureau] |1.12.3 |是
弧光设计局拓展 [Arc Light Bureau Plus] |1.1.1 |是
彻底扫描星系 |1.2.3.1 |是
无主题武器包实用功能 Unthemed Weapons Utilities |0.7.4 |是
星海集群 |1.13.7d |是
楼兰军工综合体 |3.0.1 |是
狐狐船包! |1.4.7101 |是
秘甘智库 [Mikan Institute of Knowledge] |0.7.0 |是
系统标识 [System Marker] |0.1.10 |是
红条骑士团 |0.8 |是
舰船/武器拓展 [Ship/Weapon Pack] |1.16.6 |是
蓝海渔业[BlueSeaFisher] |1.3.1 |是
详细战斗报告[Detailed Combat Results] |5.4.2 |是
超级欧米茄蓝图包 |19.19 |是
骤雨军事公司 |3.2.5 |是
骤雨军事公司 - 动漫风头像包 |1.1 |是
(以上内容由 远行星号 报错信息收集工具 自动生成,生成工具版本 1.1.5).
- com.fs.starfarer.combat.CombatEngine.advanceInner(float, ...)
|
复现步骤:
额?买一个十几年前的四核CPU?配一个近几年的甜品显卡租一台游戏机,然后装大量mod并和至少两队拥有3艘以上战列的英仙座巡查队拉锯,击毁任一舰船都可能触发
|
本帖最后由 USS Worcester 于 2026-9-12 01:25 编辑
解决方法是使用1.5版本mod进行游玩
|
|