while shuffling parts between ships, I clicked the Info -> Ship Info button at a base. Vegastrike is now stuck. I was able to attach to the process with gdb, and it's spending all its time in a small loop in prettyPrintFloat().
Code: Select all
(gdb) bt
#0 0x0000000000a7a1a8 in prettyPrintFloat ()
#1 0x0000000000aa130c in showUnitStats ()
#2 0x0000000000aa74dd in BaseComputer::showShipStats ()
#3 0x00000000008797db in Window::processCommand ()
#4 0x000000000085d252 in EventManager::sendCommand ()
#5 0x0000000000865c35 in NewButton::processMouseUp ()
#6 0x000000000085d945 in EventManager::sendInputEvent ()
#7 0x000000000085dcad in EventManager::ProcessMouseClick ()
#8 0x0000000000b71ffa in winsys_process_events ()
#9 0x0000000000b59258 in GFXLoop ()
#10 0x0000000000b74ea1 in main ()
(gdb) disas
...
0x0000000000a7a1a8 <_Z16prettyPrintFloatPcfii+72>: inc %r8d
0x0000000000a7a1ab <_Z16prettyPrintFloatPcfii+75>: mulss %xmm1,%xmm0
0x0000000000a7a1af <_Z16prettyPrintFloatPcfii+79>: comiss %xmm2,%xmm0
0x0000000000a7a1b2 <_Z16prettyPrintFloatPcfii+82>: jae 0xa7a1a8 <_Z16prettyPrintFloatPcfii+72>
...
(gdb) info reg vec
xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x80, 0x7f, 0x0 <repeats 12 times>}, v8_int16 = {0x0,
0x7f80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x7f800000, 0x0, 0x0,
0x0}, v2_int64 = {0x7f800000, 0x0},
uint128 = 0x0000000000000000000000007f800000}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xcd, 0xcc, 0xcc, 0x3d, 0x0 <repeats 12 times>}, v8_int16 = {
0xcccd, 0x3dcc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x3dcccccd,
0x0, 0x0, 0x0}, v2_int64 = {0x3dcccccd, 0x0},
uint128 = 0x0000000000000000000000003dcccccd}
xmm2 {v4_float = {0x1, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0, 0x0, 0x80, 0x3f, 0x0 <repeats 12 times>}, v8_int16 = {0x0,
0x3f80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x3f800000, 0x0, 0x0,
0x0}, v2_int64 = {0x3f800000, 0x0},
uint128 = 0x0000000000000000000000003f800000}
I'm going to sleep soon, so reply if you want me to try anything. Unfortunately, I didn't have -g on when I compiled, so I can't see values of variables, only CPU register contents.
If nobody wants me to do any specific debugging, I'll probably try to get it to continue outside the loop, because I didn't save some of the changes I made to my ships (adding some Ktek Beams from an Rlaan trantor planet I stumbled across ) before this bug struck. Then I'll be able to tell you exactly what was in the mostly-stripped-down pacifier.stock in question. It definitely had weapons but no reactor, capacitors, or sensors.