BT410 5.3.62: correction -- the fault address was never in our code

Every conclusion that named EulerAngles::operator=(const LinearMatrix&) as the
fault site was wrong, including the disassembly built on top of it.  Three
independent proofs:

1. ROTATION.CPP is ours, so the function was instrumented directly -- print
   this, &matrix and a local's address on the first twelve calls plus any wild
   pointer.  The run faulted with ZERO [euler] lines: never called.

2. After the probe was added, 0x66D9 disassembles to a two-byte conditional
   jump (jnl) that touches no memory.  The dump reports ErrCode 0004, a data
   READ.

3. EIP 0x66D9 and cr2 0x7000FA64 are identical to the byte across every build
   this session, including builds where the code at that offset changed
   completely.  A fault in our CODE segment moves when the code moves.  This
   one does not -- it lives in the DPMI host, which loads low and never gets
   relinked.

The map lookup was a coincidence: our _TEXT is section-relative from 0, so its
offsets overlap the host's low addresses, and the map will name a function for
any small number.  Before resolving a fault address against the map, confirm it
belongs to our segment -- cheapest check is whether it moves on relink.

What is actually true, by same-binary A/B:

    vRIO DOWN, serial1 still a namedpipe -> mission LAUNCHES
    vRIO UP,   same conf, same binary    -> FAULT

The trigger is a LIVE RIO stream, not an unplugged cable.  The emulator reports
continuous serial1 RX overruns, the fault lands wherever the app happened to be
(terrain one run, the mech's inside view another), and the shipped binary
survives the identical conditions.  A fault at a fixed host address, at
arbitrary points in the app, requiring an interrupt-driven stream, is an
interrupt re-entrancy signature rather than a wild pointer.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-29 08:22:15 -05:00
co-authored by Claude Fable 5
parent d5ae9c4851
commit 3c42766f48
11 changed files with 14979 additions and 1398 deletions
+42 -7
View File
@@ -1,5 +1,5 @@
LOG: Early LOG Init complete
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_norio.conf
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_rec.conf
LOG: DOSBox-X's working directory: C:\VWE\TeslaRel410\emulator\src\src
LOG: Logging init: beginning logging proper. This is the end of the early init logging
LOG: Logging: No logfile was given. All further logging will be discarded.
@@ -26,6 +26,7 @@ LOG: Pentium CMPXCHG8B emulation is enabled
LOG: Max 1073741824 sz 32768
LOG: Final 32768
LOG: Final arrangement: Below 4GB = 32768KB, Above 4GB = 0KB
LOG: VPXLOG: fifosock listening on 127.0.0.1:8621
LOG: VPXLOG: live render backend started
LOG: VPXLOG: base 0x150 respond=1 handshakes=3 log='C:\Users\cyd\AppData\Local/Temp/vwe-pod/vpxresp.txt'
LOG: MIDI:Opened device:win32
@@ -33,6 +34,9 @@ LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Micropho
LOG: One joystick reported, initializing with 4axis
LOG: Using joystick Xbox One Controller with 6 axes, 16 buttons and 1 hat(s)
LOG: VOODOO LFB now at d0000000
LOG: Serial1: BASE 3f8h
LOG: Serial1: namedpipe client of \\.\pipe\vrio (poll 0.10ms burst x16)
LOG: Serial1: namedpipe connected to \\.\pipe\vrio
LOG: Serial2: BASE 2f8h
LOG: Serial2: namedpipe client of \\.\pipe\vplasma (poll 1.00ms burst x1)
LOG: Serial2: namedpipe connected to \\.\pipe\vplasma
@@ -62,11 +66,42 @@ LOG: pixratio 1.350, dw false, dh false
LOG: Aspect ratio: 720 x 540 xToY=1.333 yToX=0.750
LOG: SHELL:Redirect output to COM3
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
LOG: 174850752 ERROR MOUSE:Unhandled videomode 79 on reset
LOG: 187089850 ERROR MOUSE:Unhandled videomode 79 on reset
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
VPX lightnode t=6 nb=52: [8]00000000/0 [12]00000000/0 [16]00000001/1.4013e-45 [20]3f800000/1 [24]3f800000/1 [28]3f800000/1 [32]64078678/1e+22 [36]64078678/1e+22 [40]3f7c6c01/0.986023 [44]3ce1d649/0.027568 [48]ffffffff/nan
VPX lights@f121: type6=2 typeE=9 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
VPX lights@f241: type6=2 typeE=10 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
VPX lightnode t=6 nb=52: [8]00000000/0 [12]00000000/0 [16]00000001/1.4013e-45 [20]3f800000/1 [24]3f800000/1 [28]3f800000/1 [32]64078678/1e+22 [36]64078678/1e+22 [40]bf1f30a5/-0.621836 [44]00000000/0 [48]ffffffff/nan
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:3 (IF0:3), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:3 (IF0:3), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:3 (IF0:3), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:3 (IF0:3), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:2 (IF0:2), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:1 (IF0:1), TX:0, Break 0
LOG: 653744846 ERROR INT10:PutPixel unhandled mode type 7
LOG: SHELL:Redirect output to RC.TXT
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:460 (IF0:9), TX:0, Break 0
LOG: Serial1: Errors: Framing 0, Parity 0, Overrun RX:209 (IF0:0), TX:0, Break 0
@@ -0,0 +1,72 @@
LOG: Early LOG Init complete
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_norio.conf
LOG: DOSBox-X's working directory: C:\VWE\TeslaRel410\emulator\src\src
LOG: Logging init: beginning logging proper. This is the end of the early init logging
LOG: Logging: No logfile was given. All further logging will be discarded.
LOG: DOSBox-X version 2026.06.02 Commit d75a57c (MinGW SDL2 64-bit)
LOG: Prevent capture: 0
LOG: SDL: version 2.32.10, Video windows, Audio directsound
LOG: EXPERIMENTAL: Debugger enabled for MinGW build, DOSBox-X crashes depending on the terminal software you use. Launching from command prompt (cmd.exe) is recommended.
LOG: Windows keyboard layout ID is 0x0409
LOG: Host keyboard layout is now us (US English)
LOG: Mapper keyboard layout is now us (US English)
LOG: SDL2 reports desktop display mode 3440 x 1440
LOG: OpenGL Version : 4.6.0 NVIDIA 610.47
LOG: Configured windowposition: -
LOG: SDL: Current window pixel format: SDL_PIXELFORMAT_RGB888
LOG: SDL: You are running in 24 bpp mode, this will slow down things!
LOG: Releasing keyboard
LOG: SDL: Windows 11 round corners will be disabled.
LOG: Screen report: Method 'Win98base' (3440.000 x 1440.000 pixels) at (0.000 x 0.000) (910.167 x 381.000 mm) (35.833 x 15.000 in) (96.000 x 96.000 DPI)
LOG: ISA BCLK: 8333333.333Hz (25000000/3)
LOG: monopal: green,
LOG: Active save slot: 1 [Empty]
LOG: USING AVI+ZMBV
LOG: Pentium CMPXCHG8B emulation is enabled
LOG: Max 1073741824 sz 32768
LOG: Final 32768
LOG: Final arrangement: Below 4GB = 32768KB, Above 4GB = 0KB
LOG: VPXLOG: live render backend started
LOG: VPXLOG: base 0x150 respond=1 handshakes=3 log='C:\Users\cyd\AppData\Local/Temp/vwe-pod/vpxresp.txt'
LOG: MIDI:Opened device:win32
LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Microphone)
LOG: One joystick reported, initializing with 4axis
LOG: Using joystick Xbox One Controller with 6 axes, 16 buttons and 1 hat(s)
LOG: VOODOO LFB now at d0000000
LOG: Serial2: BASE 2f8h
LOG: Serial2: namedpipe client of \\.\pipe\vplasma (poll 1.00ms burst x1)
LOG: Serial2: namedpipe connected to \\.\pipe\vplasma
LOG: Serial3: BASE 3e8h
LOG: Serial: port 3 will write to file C:\VWE\TeslaRel410\emulator\render-bridge\podlog.txt
LOG: Parallel1: BASE 378h
LOG: MPU-401 Registering I/O ports as if IBM PC MPU-401 at base 330h
LOG: Memory I/O complexity optimization enabled aka option 'memory io optimization 1'. If the game or demo is unable to draw to the screen properly, set the option to false.
LOG: The 'scanline render on demand' option is available and may provide a modest boost in video render performance if set to true.
LOG: Allocated APM BIOS pm entry point at f000:ce40
LOG: Writing code to fce40
LOG: Writing code to fce60
LOG: Windows: IID_ITaskbarList3 is available
LOG: ISA Plug & Play BIOS enabled
LOG: VGA ROM BIOS init callback
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
LOG: WARNING: No translation support (to host) for code page 0
LOG: DOS keyboard layout loaded with main language code US for layout us
LOG: XMS: 50 handles allocated for use by the DOS environment
LOG: EMS page frame at 0xe000-0xefff
LOG: COMMAND.COM env size: 720 bytes
LOG: COMMAND.COM environment block: 0x0701 sz=0x002d
LOG: COMMAND.COM main body (PSP): 0x072f sz=0x009a
LOG: COMMAND.COM stack: 0x0749
LOG: pixratio 1.350, dw false, dh false
LOG: Aspect ratio: 720 x 540 xToY=1.333 yToX=0.750
LOG: SHELL:Redirect output to COM3
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
LOG: 174850752 ERROR MOUSE:Unhandled videomode 79 on reset
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
VPX lightnode t=6 nb=52: [8]00000000/0 [12]00000000/0 [16]00000001/1.4013e-45 [20]3f800000/1 [24]3f800000/1 [28]3f800000/1 [32]64078678/1e+22 [36]64078678/1e+22 [40]3f7c6c01/0.986023 [44]3ce1d649/0.027568 [48]ffffffff/nan
VPX lights@f121: type6=2 typeE=9 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
VPX lights@f241: type6=2 typeE=10 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,76 @@
LOG: Early LOG Init complete
LOG: CONFIG: Loaded config file: C:/VWE/TeslaRel410/emulator/render-bridge/pod_render_rec.conf
LOG: DOSBox-X's working directory: C:\VWE\TeslaRel410\emulator\src\src
LOG: Logging init: beginning logging proper. This is the end of the early init logging
LOG: Logging: No logfile was given. All further logging will be discarded.
LOG: DOSBox-X version 2026.06.02 Commit d75a57c (MinGW SDL2 64-bit)
LOG: Prevent capture: 0
LOG: SDL: version 2.32.10, Video windows, Audio directsound
LOG: EXPERIMENTAL: Debugger enabled for MinGW build, DOSBox-X crashes depending on the terminal software you use. Launching from command prompt (cmd.exe) is recommended.
LOG: Windows keyboard layout ID is 0x0409
LOG: Host keyboard layout is now us (US English)
LOG: Mapper keyboard layout is now us (US English)
LOG: SDL2 reports desktop display mode 3440 x 1440
LOG: OpenGL Version : 4.6.0 NVIDIA 610.47
LOG: Configured windowposition: -
LOG: SDL: Current window pixel format: SDL_PIXELFORMAT_RGB888
LOG: SDL: You are running in 24 bpp mode, this will slow down things!
LOG: Releasing keyboard
LOG: SDL: Windows 11 round corners will be disabled.
LOG: Screen report: Method 'Win98base' (3440.000 x 1440.000 pixels) at (0.000 x 0.000) (910.167 x 381.000 mm) (35.833 x 15.000 in) (96.000 x 96.000 DPI)
LOG: ISA BCLK: 8333333.333Hz (25000000/3)
LOG: monopal: green,
LOG: Active save slot: 1 [Empty]
LOG: USING AVI+ZMBV
LOG: Pentium CMPXCHG8B emulation is enabled
LOG: Max 1073741824 sz 32768
LOG: Final 32768
LOG: Final arrangement: Below 4GB = 32768KB, Above 4GB = 0KB
LOG: VPXLOG: fifosock listening on 127.0.0.1:8621
LOG: VPXLOG: live render backend started
LOG: VPXLOG: base 0x150 respond=1 handshakes=3 log='C:\Users\cyd\AppData\Local/Temp/vwe-pod/vpxresp.txt'
LOG: MIDI:Opened device:win32
LOG: mic_input: Selected microphone device: Microphone (Steam Streaming Microphone)
LOG: One joystick reported, initializing with 4axis
LOG: Using joystick Xbox One Controller with 6 axes, 16 buttons and 1 hat(s)
LOG: VOODOO LFB now at d0000000
LOG: Serial1: BASE 3f8h
LOG: Serial1: namedpipe client of \\.\pipe\vrio (poll 0.10ms burst x16)
LOG: Serial2: BASE 2f8h
LOG: Serial2: namedpipe client of \\.\pipe\vplasma (poll 1.00ms burst x1)
LOG: Serial3: BASE 3e8h
LOG: Serial: port 3 will write to file C:\VWE\TeslaRel410\emulator\render-bridge\podlog.txt
LOG: Parallel1: BASE 378h
LOG: MPU-401 Registering I/O ports as if IBM PC MPU-401 at base 330h
LOG: Memory I/O complexity optimization enabled aka option 'memory io optimization 1'. If the game or demo is unable to draw to the screen properly, set the option to false.
LOG: The 'scanline render on demand' option is available and may provide a modest boost in video render performance if set to true.
LOG: Allocated APM BIOS pm entry point at f000:ce40
LOG: Writing code to fce40
LOG: Writing code to fce60
LOG: Windows: IID_ITaskbarList3 is available
LOG: ISA Plug & Play BIOS enabled
LOG: VGA ROM BIOS init callback
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
LOG: WARNING: No translation support (to host) for code page 0
LOG: DOS keyboard layout loaded with main language code US for layout us
LOG: XMS: 50 handles allocated for use by the DOS environment
LOG: EMS page frame at 0xe000-0xefff
LOG: COMMAND.COM env size: 720 bytes
LOG: COMMAND.COM environment block: 0x0701 sz=0x002d
LOG: COMMAND.COM main body (PSP): 0x072f sz=0x009a
LOG: COMMAND.COM stack: 0x0749
LOG: pixratio 1.350, dw false, dh false
LOG: Aspect ratio: 720 x 540 xToY=1.333 yToX=0.750
LOG: SHELL:Redirect output to COM3
VPX lights@f1: type6=0 typeE=0 decoded=0 dir=0 amb(0.00,0.00,0.00)
LOG: 186697036 ERROR MOUSE:Unhandled videomode 79 on reset
LOG: pixratio 1.000, dw false, dh false
LOG: Aspect ratio: 640 x 480 xToY=1.333 yToX=0.750
VPX lightnode t=6 nb=52: [8]00000000/0 [12]00000000/0 [16]00000001/1.4013e-45 [20]3f800000/1 [24]3f800000/1 [28]3f800000/1 [32]64078678/1e+22 [36]64078678/1e+22 [40]3e888894/0.266667 [44]3eeeeefa/0.466667 [48]ffffffff/nan
VPX lights@f121: type6=2 typeE=9 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
VPX lights@f241: type6=2 typeE=10 decoded=2 dir=1 amb(0.55,0.50,0.65)
L0 dir(0.11,0.77,0.63) col(1.10,0.90,1.00)
LOG: Serial1: namedpipe connected to \\.\pipe\vrio
LOG: Serial2: namedpipe connected to \\.\pipe\vplasma
+582
View File
@@ -0,0 +1,582 @@
BattleTech v4.10
BTL4Application::BTL4Application
RIO never came back from check request!
GaugeInterpreter: undefined label 'Initialization'
[exp] master player experience=2 simLive=1 heatModelOn=1 advDamage=1
[role] 'Role::Default' lives=1000 killBonus=500 dmgMod=1
[torso] horizJoint 'jointtorso' -> 0x00a559b4 type=1 enabled=1
[weap] 'AFC100' seg=13 mount=sitelgunport rear=0
[proj] 'AFC100' ammoBinIndex=21 -> AmmoBinAFC100 (rounds=20)
[weap] 'ERLLaser' seg=7 mount=siterugunport rear=0
[weap] 'ERSLaser_1' seg=13 mount=sitelgunport rear=0
[weap] 'ERSLaser_2' seg=8 mount=siterdgunport rear=0
[weap] 'LRM15_1' seg=18 mount=sitelmissleport rear=0
[proj] 'LRM15_1' ammoBinIndex=26 -> AmmoBinLRM15_1 (rounds=16)
[weap] 'LRM15_2' seg=19 mount=sitermissleport rear=0
[proj] 'LRM15_2' ammoBinIndex=28 -> AmmoBinLRM15_2 (rounds=16)
[mech] segment walk done: subsystemCount=32 weaponCount=6
[skel] jointSubsystem=0x009eb3c4 jointCount=25
[mech] model params: walkTR=65 runTR=40 maxAcc=20 throttleAdj=0.8 (deg,deg,u/s^2,scale)
[mech] look angles: L=50 R=-50 F=-15 B=0 (deg)
[mech] damage zones streamed: 22 [dz_dtorso,dz_hip,dz_larm,dz_ldleg,dz_ldoor,dz_lfoot,dz_lgun,dz_ltorso,dz_luleg,dz_rarm,dz_rdleg,dz_rdoor,dz_reardtorso,dz_rearltorso,dz_rearrtorso,dz_rearutorso,dz_rfoot,dz_rgun,dz_rtorso,dz_ruleg,dz_searchlight,dz_utorso]
[cyl] table 'madcat' LOADED rows=7
[valve] 'Condenser1' valve=1 flow=0.166667
[valve] 'Condenser2' valve=1 flow=0.166667
[valve] 'Condenser3' valve=1 flow=0.166667
[valve] 'Condenser4' valve=1 flow=0.166667
[valve] 'Condenser5' valve=1 flow=0.166667
[valve] 'Condenser6' valve=1 flow=0.166667
[mapper] ctor id=0 throttleAttr=0x0096b248 controlModeAttr=0x0096b284
[gau2] cluster slot=14 classID=3011 auxScreen=5 name=Avionics
[gau2] cluster slot=15 classID=3014 auxScreen=6 name=Myomers
[gau2] cluster slot=22 classID=3021 auxScreen=1 name=AFC100
[gau2] cluster slot=23 classID=3016 auxScreen=10 name=ERLLaser
[gau2] cluster slot=24 classID=3016 auxScreen=3 name=ERSLaser_1
[gau2] cluster slot=25 classID=3016 auxScreen=12 name=ERSLaser_2
[gau2] cluster slot=27 classID=3024 auxScreen=2 name=LRM15_1
[gau2] cluster slot=29 classID=3024 auxScreen=9 name=LRM15_2
ColorMapperArmor warning: damage zone dz_missle not found
ColorMapperArmor warning: damage zone dz_missle not found
ColorMapperArmor warning: damage zone dz_lmissle not found
ColorMapperArmor warning: damage zone dz_rmissle not found
ColorMapperArmor warning: damage zone dz_ftorso not found
ColorMapperArmor warning: damage zone dz_btorso not found
[link] InitializePlayerLink -> vehicle playerLink=0x00adc2c0
[launch] state=11 minPriorityEmpty=0 ticks=14713
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1
[posts] id3=416
[launch] state=11 minPriorityEmpty=0 ticks=15726
[queues] p0=BUSY p1=BUSY p2=BUSY p3=BUSY p4=- nextReady=1
[posts] id3=502
[launch] state=11 minPriorityEmpty=0 ticks=16736
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=11 minPriorityEmpty=0 ticks=17745
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=11 minPriorityEmpty=0 ticks=18754
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 1 class=3035 view=0 res=0
[mer] 2 class=42 view=0 res=1
[mer] 3 class=42 view=0 res=1
[mer] 4 class=42 view=0 res=1
[mer] 5 class=42 view=0 res=1
[mer] 6 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=19831
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 7 class=42 view=0 res=1
[mer] 8 class=42 view=0 res=1
[mer] 9 class=42 view=0 res=1
[mer] 10 class=42 view=0 res=1
[mer] 11 class=42 view=0 res=1
[mer] 12 class=42 view=0 res=1
[mer] 13 class=42 view=0 res=1
[mer] 14 class=42 view=0 res=1
[mer] 15 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=20940
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 16 class=42 view=0 res=1
[mer] 17 class=42 view=0 res=1
[mer] 18 class=42 view=0 res=1
[mer] 19 class=42 view=0 res=1
[mer] 20 class=42 view=0 res=1
[mer] 21 class=42 view=0 res=1
[mer] 22 class=42 view=0 res=1
[mer] 23 class=42 view=0 res=1
[mer] 24 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=22051
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 25 class=42 view=0 res=1
[mer] 26 class=42 view=0 res=1
[mer] 27 class=42 view=0 res=1
[mer] 28 class=42 view=0 res=1
[mer] 29 class=42 view=0 res=1
[mer] 30 class=42 view=0 res=1
[mer] 31 class=42 view=0 res=1
[mer] 32 class=42 view=0 res=1
[mer] 33 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=23160
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 34 class=42 view=0 res=1
[mer] 35 class=42 view=0 res=1
[mer] 36 class=42 view=0 res=1
[mer] 37 class=42 view=0 res=1
[mer] 38 class=94 view=0 res=1
[mer] 39 class=94 view=0 res=1
[mer] 40 class=42 view=0 res=1
[mer] 41 class=94 view=0 res=1
[mer] 42 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=24269
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 43 class=94 view=0 res=1
[mer] 44 class=94 view=0 res=1
[mer] 45 class=94 view=0 res=1
[mer] 46 class=94 view=0 res=1
[mer] 47 class=94 view=0 res=1
[mer] 48 class=94 view=0 res=1
[mer] 49 class=42 view=0 res=1
[mer] 50 class=42 view=0 res=1
[mer] 51 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=25380
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 52 class=42 view=0 res=1
[mer] 53 class=42 view=0 res=1
[mer] 54 class=94 view=0 res=1
[mer] 55 class=94 view=0 res=1
[mer] 56 class=94 view=0 res=1
[mer] 57 class=94 view=0 res=1
[mer] 58 class=42 view=0 res=1
[mer] 59 class=42 view=0 res=1
[mer] 60 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=26489
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 61 class=42 view=0 res=1
[mer] 62 class=94 view=0 res=1
[mer] 63 class=94 view=0 res=1
[mer] 64 class=94 view=0 res=1
[mer] 65 class=94 view=0 res=1
[mer] 66 class=94 view=0 res=1
[mer] 67 class=94 view=0 res=1
[mer] 68 class=42 view=0 res=1
[mer] 69 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=27598
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 70 class=94 view=0 res=1
[mer] 71 class=94 view=0 res=1
[mer] 72 class=94 view=0 res=1
[mer] 73 class=94 view=0 res=1
[stack] frame at 0x12dee7 drift=0 over 1001 frames ticks=28077 pump=352/1499
[mer] 74 class=94 view=0 res=1
[mer] 75 class=94 view=0 res=1
[mer] 76 class=42 view=0 res=1
[mer] 77 class=94 view=0 res=1
[mer] 78 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=28710
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 79 class=94 view=0 res=1
[mer] 80 class=94 view=0 res=1
[mer] 81 class=94 view=0 res=1
[mer] 82 class=94 view=0 res=1
[mer] 83 class=94 view=0 res=1
[mer] 84 class=94 view=0 res=1
[mer] 85 class=42 view=0 res=1
[mer] 86 class=94 view=0 res=1
[mer] 87 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=29819
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 88 class=42 view=0 res=1
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =1380
[mer] 89 class=42 view=0 res=1
[mer] 90 class=42 view=0 res=1
[mer] 91 class=94 view=0 res=1
[mer] 92 class=94 view=0 res=1
[mer] 93 class=42 view=0 res=1
[mer] 94 class=94 view=0 res=1
[mer] 95 class=94 view=0 res=1
[mer] 96 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=30929
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 97 class=94 view=0 res=1
[mer] 98 class=94 view=0 res=1
[mer] 99 class=42 view=0 res=1
[mer] 100 class=42 view=0 res=1
[mer] 101 class=42 view=0 res=1
[mer] 102 class=94 view=0 res=1
[mer] 103 class=42 view=0 res=1
[mer] 104 class=42 view=0 res=1
[mer] 105 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=32040
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 106 class=42 view=0 res=1
[mer] 107 class=42 view=0 res=1
[mer] 108 class=42 view=0 res=1
[mer] 109 class=42 view=0 res=1
[mer] 110 class=42 view=0 res=1
[mer] 111 class=42 view=0 res=1
[mer] 112 class=42 view=0 res=1
[mer] 113 class=42 view=0 res=1
[mer] 114 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=33149
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 115 class=42 view=0 res=1
[mer] 116 class=42 view=0 res=1
[mer] 117 class=42 view=0 res=1
[mer] 118 class=42 view=0 res=1
[mer] 119 class=42 view=0 res=1
[mer] 120 class=94 view=0 res=1
[mer] 121 class=42 view=0 res=1
[mer] 122 class=42 view=0 res=1
[mer] 123 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=34258
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 124 class=42 view=0 res=1
[mer] 125 class=42 view=0 res=1
[mer] 126 class=42 view=0 res=1
[mer] 127 class=42 view=0 res=1
[mer] 128 class=42 view=0 res=1
[mer] 129 class=42 view=0 res=1
[mer] 130 class=42 view=0 res=1
[mer] 131 class=42 view=0 res=1
[mer] 132 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=35369
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 133 class=42 view=0 res=1
[mer] 134 class=42 view=0 res=1
[mer] 135 class=42 view=0 res=1
[mer] 136 class=42 view=0 res=1
[mer] 137 class=42 view=0 res=1
[mer] 138 class=42 view=0 res=1
[mer] 139 class=42 view=0 res=1
[mer] 140 class=42 view=0 res=1
[mer] 141 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=36478
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 142 class=42 view=0 res=1
[mer] 143 class=94 view=0 res=1
[mer] 144 class=94 view=0 res=1
[mer] 145 class=94 view=0 res=1
[mer] 146 class=42 view=0 res=1
[mer] 147 class=94 view=0 res=1
[mer] 148 class=42 view=0 res=1
[mer] 149 class=94 view=0 res=1
[mer] 150 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=37587
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 151 class=94 view=0 res=1
[mer] 152 class=42 view=0 res=1
[mer] 153 class=42 view=0 res=1
[mer] 154 class=42 view=0 res=1
[mer] 155 class=94 view=0 res=1
[mer] 156 class=42 view=0 res=1
[mer] 157 class=42 view=0 res=1
[mer] 158 class=94 view=0 res=1
[mer] 159 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=38700
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 160 class=42 view=0 res=1
[mer] 161 class=42 view=0 res=1
[mer] 162 class=42 view=0 res=1
[mer] 163 class=42 view=0 res=1
[mer] 164 class=94 view=0 res=1
[mer] 165 class=94 view=0 res=1
[mer] 166 class=42 view=0 res=1
[mer] 167 class=94 view=0 res=1
[mer] 168 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=39809
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 169 class=94 view=0 res=1
[mer] 170 class=94 view=0 res=1
[mer] 171 class=42 view=0 res=1
[mer] 172 class=42 view=0 res=1
[mer] 173 class=42 view=0 res=1
[mer] 174 class=94 view=0 res=1
[mer] 175 class=42 view=0 res=1
[mer] 176 class=42 view=0 res=1
[mer] 177 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=40918
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 178 class=94 view=0 res=1
[mer] 179 class=94 view=0 res=1
[mer] 180 class=42 view=0 res=1
[mer] 181 class=42 view=0 res=1
[mer] 182 class=42 view=0 res=1
[mer] 183 class=94 view=0 res=1
[mer] 184 class=94 view=0 res=1
[mer] 185 class=42 view=0 res=1
[mer] 186 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=42029
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 187 class=94 view=0 res=1
[mer] 188 class=94 view=0 res=1
[mer] 189 class=42 view=0 res=1
[mer] 190 class=42 view=0 res=1
[mer] 191 class=94 view=0 res=1
[mer] 192 class=94 view=0 res=1
[mer] 193 class=42 view=0 res=1
[mer] 194 class=42 view=0 res=1
[mer] 195 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=43138
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 196 class=42 view=0 res=1
[mer] 197 class=94 view=0 res=1
[mer] 198 class=94 view=0 res=1
[mer] 199 class=94 view=0 res=1
[mer] 200 class=94 view=0 res=1
[mer] 201 class=94 view=0 res=1
[mer] 202 class=94 view=0 res=1
[stack] frame at 0x12dee7 drift=0 over 2002 frames ticks=43949 pump=495/2643
[mer] 203 class=94 view=0 res=1
[mer] 204 class=42 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=44248
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 205 class=94 view=0 res=1
[mer] 206 class=94 view=0 res=1
[mer] 207 class=48 view=0 res=0
[mer] 208 class=3001 view=1 res=1
[vid] type=1 file='mad.skl'
[skl] video\mad.skl -> 26 nodes, 19 objects
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =1407
[launch] state=2 minPriorityEmpty=0 ticks=45360
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=46469
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=47578
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=48689
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=49798
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=50907
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=52018
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=53127
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=54236
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=55349
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=56458
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=57567
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=58678
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=59787
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[stack] frame at 0x12dee7 drift=0 over 3003 frames ticks=59824 pump=638/3787
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =1434
[launch] state=2 minPriorityEmpty=0 ticks=60898
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=62009
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=63118
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=64227
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=65338
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=66447
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=67556
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=68667
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[launch] state=2 minPriorityEmpty=0 ticks=69776
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 209 class=48 view=0 res=0
[mer] 210 class=48 view=0 res=0
[launch] state=2 minPriorityEmpty=0 ticks=70885
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 211 class=48 view=0 res=0
[mer] 212 class=48 view=0 res=0
[mer] 213 class=48 view=0 res=0
[mer] 214 class=48 view=0 res=0
[mer] 215 class=48 view=0 res=0
[launch] state=2 minPriorityEmpty=0 ticks=71996
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 216 class=48 view=0 res=0
[mer] 217 class=94 view=0 res=1
[mer] 218 class=94 view=0 res=1
[mer] 219 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=73107
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 220 class=94 view=0 res=1
[mer] 221 class=94 view=0 res=1
[mer] 222 class=94 view=0 res=1
[mer] 223 class=94 view=0 res=1
[mer] 224 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=74216
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 225 class=94 view=0 res=1
[mer] 226 class=94 view=0 res=1
[mer] 227 class=94 view=0 res=1
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =1461
[mer] 228 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=75328
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 229 class=94 view=0 res=1
[mer] 230 class=94 view=0 res=1
[stack] frame at 0x12dee7 drift=0 over 4004 frames ticks=75695 pump=781/4931
[mer] 231 class=94 view=0 res=1
[mer] 232 class=94 view=0 res=1
[mer] 233 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=76438
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 234 class=94 view=0 res=1
[mer] 235 class=94 view=0 res=1
[mer] 236 class=94 view=0 res=1
[mer] 237 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=77547
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 238 class=94 view=0 res=1
[mer] 239 class=94 view=0 res=1
[mer] 240 class=94 view=0 res=1
[mer] 241 class=94 view=0 res=1
[mer] 242 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=78658
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 243 class=94 view=0 res=1
[mer] 244 class=94 view=0 res=1
[mer] 245 class=94 view=0 res=1
[mer] 246 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=79767
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 247 class=94 view=0 res=1
[mer] 248 class=94 view=0 res=1
[mer] 249 class=94 view=0 res=1
MapDisplay: operating=1 static=7 moving=0
[mer] 250 class=94 view=0 res=1
[mer] 251 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=80876
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 252 class=94 view=0 res=1
[mer] 253 class=94 view=0 res=1
[mer] 254 class=94 view=0 res=1
[mer] 255 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=81987
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 256 class=94 view=0 res=1
[mer] 257 class=94 view=0 res=1
[mer] 258 class=94 view=0 res=1
[mer] 259 class=94 view=0 res=1
[mer] 260 class=94 view=0 res=1
[launch] state=2 minPriorityEmpty=0 ticks=83096
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 261 class=94 view=0 res=1
[mer] 262 class=48 view=0 res=0
[mer] 263 class=48 view=0 res=0
[mer] 264 class=48 view=0 res=0
[launch] state=2 minPriorityEmpty=0 ticks=84205
[queues] p0=BUSY p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
[mer] 265 class=48 view=0 res=0
[launch] state=2 minPriorityEmpty=1 ticks=85316
[queues] p0=- p1=- p2=BUSY p3=- p4=- nextReady=1
[posts] id3=530
BTL4Application::RunMissionMessageHandler
Turning Plasma Score Display On
BTL4Application::RunMissionMessageHandler
Turning Plasma Score Display On
[tick] roster live (first Sensor frame), radarPercent=1 voltState=4
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 1 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-130.062,0,253.962) yaw=0.0735925 spd=14.4 eyePitch=0 eyeYaw=0
[fire] 'ERSLaser_1' LOADED (level=7941.22 T=76.8855)
[fire] 'ERSLaser_2' LOADED (level=7925.96 T=76.8462)
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =1628
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 2 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-131.612,0,239.634) yaw=0.140928 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 3 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-134.127,0,225.428) yaw=0.20833 spd=14.4 eyePitch=0 eyeYaw=0
[stack] frame at 0x12dee7 drift=0 over 5005 frames ticks=91705 pump=863/6075
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 4 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-137.588,0,211.439) yaw=0.275666 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 5 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-142.066,0,197.483) yaw=0.344145 spd=14.4 eyePitch=0 eyeYaw=0
[fire] 'ERLLaser' LOADED (level=7928.31 T=76.0943)
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 6 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-147.476,0,183.893) yaw=0.41249 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 7 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-153.802,0,170.704) yaw=0.480834 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 8 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-161.029,0,157.953) yaw=0.549314 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 9 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-169.095,0,145.75) yaw=0.617659 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 10 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-177.975,0,134.127) yaw=0.686004 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 11 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-187.648,0,123.116) yaw=0.754483 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[euler] 12 this=0x12dbbc matrix=0x12db70 stack=0x12db5b
[sim] pos=(-198.031,0,112.812) yaw=0.822829 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-209.093,0,103.242) yaw=0.891174 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-220.806,0,94.4324) yaw=0.959654 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-233.07,0,86.4601) yaw=1.028 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-245.85,0,79.344) yaw=1.09635 spd=14.4 eyePitch=0 eyeYaw=0
LBE4ControlsManager::Execute, lost RIO analog request
iThinkIRQIsOn =1, actual state =1, characters sent =1655
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-258.888,0,73.2026) yaw=1.16368 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-272.54,0,67.8711) yaw=1.23216 spd=14.4 eyePitch=0 eyeYaw=0
[mppr] thr=0.6 rev=0 stickX=0.25 stickY=0 mode=0 -> speedDemand=14.4 turnDemand=0.0625 torsoElev=0
[sim] pos=(-286.498,0,63.4939) yaw=1.30051 spd=14.4 eyePitch=0 eyeYaw=0
@@ -65,6 +65,7 @@ set TEMP=c:\
rem arena1 city mission (TESTARN.EGG: map=arena1, time=day) with the RIO
rem attached; stdout redirected so mission-load progress survives kills.
set BT_MECH_LOG=1
set BT_MER_LOG=1
set BT_LAUNCH_LOG=1
set BT_STACK_LOG=1
set BT_FORCE_THROTTLE=0.6
@@ -58,6 +58,7 @@ set BT_MECH_LOG=1
set BT_LAUNCH_LOG=1
set BT_STACK_LOG=1
set BT_MER_LOG=1
set BT_EULER_LOG=1
set BT_FORCE_THROTTLE=0.6
set BT_FORCE_TURN=0.25
set HEAPSIZE=15000000
File diff suppressed because it is too large Load Diff
+20
View File
@@ -463,6 +463,26 @@ void
}
Entity_Being_Created = NULL;
//
// BT_MECH_CHAIN=1: chain the engine EVEN WHEN the skeleton was
// built.
//
// Setting handled and returning leaves the mech with a skeleton
// but no RootRenderable and no DPLEyeRenderable -- and the eye is
// what the camera follows, which is why two frames captured
// seconds apart are identical while [sim] shows the mech
// travelling hundreds of units. The mech needs BOTH.
//
// Off by default because the engine's eyepoint construction is
// exactly where the page fault lands, so turning this on is how
// to reproduce that fault deliberately on a conf that otherwise
// runs clean -- one variable, either way.
//
if (handled && getenv("BT_MECH_CHAIN") != NULL)
{
handled = False;
}
if (!handled)
{
//
+52
View File
@@ -179,6 +179,58 @@ EulerAngles&
Check_Pointer(this);
Check(&matrix);
//
// FAULT PROBE (env BT_EULER_LOG).
//
// The pod's page fault lands at +0x19 of THIS function -- the first read
// through the matrix -- with cr2 = 0x7000FA64, which is 1.79 GB away from
// the frame the main loop reports. Disassembly says that read is
// `fld dword [ebx+0x20]` with ebx the matrix, and every one of the three
// call sites passes `lea eax,[ebp-0x30]` -- a STACK local. Those two
// facts cannot both be true, so one of the inferences is wrong and no
// amount of further reading will say which.
//
// This settles it from inside the function, before any dereference:
// * matrix or this at a wild address -> a caller really does pass one,
// despite the disassembly.
// * a local at ~0x7000FA74 -> we are executing on a DIFFERENT STACK
// (an interrupt or DPMI callback), and the main-loop frame address
// was never the relevant one.
// * everything sane and the fault still lands here -> the reported EIP
// or cr2 is not trustworthy in this emulated DPMI host, and the hunt
// moves to the emulator side.
//
// getenv is cached: this is a hot path once a mission runs.
//
{
static int
euler_log = -1,
euler_count = 0;
char
here;
if (euler_log < 0)
{
euler_log = (getenv("BT_EULER_LOG") != NULL) ? 1 : 0;
}
if (euler_log)
{
euler_count++;
if (
euler_count <= 12 ||
(unsigned long)(void *)&matrix >= 0x10000000L ||
(unsigned long)(void *)this >= 0x10000000L
)
{
DEBUG_STREAM << "[euler] " << euler_count
<< " this=0x" << hex << (int)this
<< " matrix=0x" << (int)&matrix
<< " stack=0x" << (int)&here
<< dec << endl << flush;
}
}
}
SinCosPair
p,y,r;
@@ -1122,3 +1122,55 @@ the EulerAngles::operator=(const LinearMatrix&) fault has to be understood
before the mech can be seen from its own cockpit. It is now reproducible on
demand rather than intermittent, which is the difference between a hunt and a
coin flip.
--------------------------------------------------------------------------------
CORRECTION: THE FAULT ADDRESS WAS NEVER IN OUR CODE
--------------------------------------------------------------------------------
Every conclusion in this file that named EulerAngles::operator=(const
LinearMatrix&) as the fault site was wrong, including the disassembly arguments
built on top of it. Three independent proofs:
1. THE PROBE PRINTED NOTHING. ROTATION.CPP is ours, so the function was
instrumented directly -- print this, &matrix and a local's address on the
first twelve calls, plus any call with a wild pointer. The run faulted
with ZERO [euler] lines. The function was never called at all.
2. THE INSTRUCTION AT THE FAULT ADDRESS CANNOT FAULT. After the probe was
added, 0x66D9 disassembles to `jnl 0x66f8` -- a two-byte conditional jump
that touches no memory. The dump reports ErrCode 0004, a data READ.
3. THE ADDRESS NEVER MOVES. EIP 0x66D9 and cr2 0x7000FA64 are identical to
the byte across every build this session, including builds where the code
at that offset changed completely (it was `mov eax,[edi]` before). A real
fault in our CODE segment moves when the code moves. This one does not,
which means it lives in something that does not get relinked: the DPMI
host (32rtm / DPMI32VM.OVL), which loads low.
The map lookup that started it all was a COINCIDENCE. Our _TEXT is
section-relative from 0, so its offsets overlap the host's low addresses, and
btl4opt.map will cheerfully name a function for any small number handed to it.
The lesson is specific and worth keeping: before resolving a fault address
against the map, confirm the address actually BELONGS to our segment -- the
cheapest check being whether it moves when the binary is relinked.
WHAT IS ACTUALLY TRUE, by same-binary A/B this morning:
vRIO process DOWN, serial1 still a namedpipe -> mission LAUNCHES
vRIO process UP, same conf, same binary -> FAULT
So the trigger is a LIVE RIO STREAM, not the port's existence and not an
unplugged cable. Supporting evidence: the emulator reports continuous serial1
RX OVERRUN errors (the guest is not draining the port), the fault lands at
whatever the app happened to be doing (terrain on one run, the mech's inside
view on another), and the SHIPPED binary survives the identical conditions --
it logs "lost RIO analog request", keeps sending characters, and runs.
A fault at a fixed host address, landing at arbitrary points in the
application, that requires an interrupt-driven data stream, is an INTERRUPT
RE-ENTRANCY signature, not a wild pointer in our data. That is where the hunt
goes next: the RIO ISR path and what it re-enters. L4RIO.CPP is authentic
archive code; MechRIOMapper (BT/MECHMPPR.CPP) and the controls plumbing are
ours.
REPRODUCING IT: start VRio.App, run pod_render_rec.conf. Stop vRIO (or use
pod_render_norio.conf) for a clean mission.