Issue #41: launch forensics in the player bats -- exit code + never-started detection
David's failures leave a 0-byte (or absent) join.log -- the exe can't testify about a death before WinMain. The bats now bracket it from OUTSIDE: launch_report.txt records the launch timestamp, the exe's EXIT CODE (fingerprints the failure class: 0xC0000135 DLL-not-found, 0xC0000005 AV, AV-kill signatures, our clean exits), whether join.log was ever created (never-created = blocked before our first instruction), and its size. Verified with a synthetic -1073741819 exit. The 'exited' message now asks players to send BOTH files. With this + the 507 first-breath line + the crash self-report, every failure mode now leaves evidence somewhere: bat report (pre-WinMain), first-breath (WinMain reached), [crash] stack (anything after). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b2b7a45b5c
commit
41e899a9d7
+10
-2
@@ -20,11 +20,19 @@ cd content
|
||||
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
|
||||
rem your choice is sent to the operator and lands in the mission roster.
|
||||
set BT_FE_JOIN=1
|
||||
rem LAUNCH FORENSICS (#41): bracket the exe from outside -- if it dies
|
||||
rem before it can write its own log, this report still records when it
|
||||
rem ran, how it exited, and whether it ever created its log at all.
|
||||
echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
||||
..\build\Release\btl4.exe
|
||||
set BT_EXITCODE=%ERRORLEVEL%
|
||||
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
||||
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
||||
echo.
|
||||
echo The game has exited. If you did NOT quit on purpose
|
||||
echo (crash, or it never connected), send the operator the
|
||||
echo file content\join.log so they can see what happened.
|
||||
echo (crash, or it never connected), send the operator BOTH files:
|
||||
echo content\join.log and content\launch_report.txt
|
||||
echo Otherwise the session may not be up yet -- try again.
|
||||
pause
|
||||
exit /b
|
||||
|
||||
+10
-2
@@ -23,11 +23,19 @@ cd content
|
||||
rem JOIN-GAME menu (2026-07-22): pick your CALLSIGN + MECH, click JOIN --
|
||||
rem your choice is sent to the operator and lands in the mission roster.
|
||||
set BT_FE_JOIN=1
|
||||
rem LAUNCH FORENSICS (#41): bracket the exe from outside -- if it dies
|
||||
rem before it can write its own log, this report still records when it
|
||||
rem ran, how it exited, and whether it ever created its log at all.
|
||||
echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
||||
..\build\Release\btl4.exe
|
||||
set BT_EXITCODE=%ERRORLEVEL%
|
||||
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
||||
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
||||
echo.
|
||||
echo The game has exited. If you did NOT quit on purpose
|
||||
echo (crash, or it never connected), send the operator the
|
||||
echo file content\join.log so they can see what happened.
|
||||
echo (crash, or it never connected), send the operator BOTH files:
|
||||
echo content\join.log and content\launch_report.txt
|
||||
echo Otherwise the session may not be up yet -- try again.
|
||||
pause
|
||||
exit /b
|
||||
|
||||
@@ -20,7 +20,15 @@ set BT_LOG=join.log
|
||||
set BT_LOG_APPEND=1
|
||||
set BT_FE_SOLO=1
|
||||
cd content
|
||||
rem LAUNCH FORENSICS (#41): bracket the exe from outside -- if it dies
|
||||
rem before it can write its own log, this report still records when it
|
||||
rem ran, how it exited, and whether it ever created its log at all.
|
||||
echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
||||
..\build\Release\btl4.exe
|
||||
set BT_EXITCODE=%ERRORLEVEL%
|
||||
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
||||
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
||||
exit /b
|
||||
:badpath
|
||||
echo.
|
||||
|
||||
@@ -19,7 +19,15 @@ set BT_LOG=join.log
|
||||
set BT_LOG_APPEND=1
|
||||
set BT_FE_SOLO=1
|
||||
cd content
|
||||
rem LAUNCH FORENSICS (#41): bracket the exe from outside -- if it dies
|
||||
rem before it can write its own log, this report still records when it
|
||||
rem ran, how it exited, and whether it ever created its log at all.
|
||||
echo [%DATE% %TIME%] launching btl4.exe > launch_report.txt
|
||||
..\build\Release\btl4.exe
|
||||
set BT_EXITCODE=%ERRORLEVEL%
|
||||
echo [%DATE% %TIME%] btl4.exe exited with code %BT_EXITCODE% >> launch_report.txt
|
||||
if not exist join.log echo join.log WAS NEVER CREATED: the exe was blocked before it could run (loader failure or antivirus) >> launch_report.txt
|
||||
if exist join.log for %%A in (join.log) do echo join.log size: %%~zA bytes >> launch_report.txt
|
||||
echo.
|
||||
echo The game has exited. If it closed unexpectedly,
|
||||
echo send the operator content\join.log.
|
||||
|
||||
Reference in New Issue
Block a user