2025-07-22 05:49 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004891Spring engineGeneralpublic2015-07-07 14:26
Reportercleanrock 
Assigned Tohokomoko 
PrioritynormalSeveritycrashReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0004891: SIGFPE in CGameHelper::GenerateWeaponTargets
DescriptionProgram received signal SIGFPE, Arithmetic exception.
0x00000000005da501 in CGameHelper::GenerateWeaponTargets (weapon=0x7fffc516b800, avoidUnit=0x0, targets=std::multimap with 0 elements)
    at /home/johanr/my_projects/spring/rts/Game/GameHelper.cpp:645
645 const float secDamage = weaponDef->damages.GetDefaultDamage() * weapon->salvoSize / weapon->reloadTime * GAME_SPEED;
(gdb) bt
#0 0x00000000005da501 in CGameHelper::GenerateWeaponTargets (weapon=0x7fffc516b800, avoidUnit=0x0, targets=std::multimap with 0 elements)
    at /home/johanr/my_projects/spring/rts/Game/GameHelper.cpp:645
#1 0x0000000000ec0934 in CWeapon::AutoTarget (this=0x7fffc516b800) at /home/johanr/my_projects/spring/rts/Sim/Weapons/Weapon.cpp:651
#2 0x0000000000ec0cf4 in CWeapon::SlowUpdate (this=0x7fffc516b800) at /home/johanr/my_projects/spring/rts/Sim/Weapons/Weapon.cpp:723
0000003 0x0000000000e77406 in CUnit::SlowUpdateWeapons (this=0x3659f000) at /home/johanr/my_projects/spring/rts/Sim/Units/Unit.cpp:1089
0000004 0x0000000000e96c58 in CUnitHandler::Update (this=0x1423a000) at /home/johanr/my_projects/spring/rts/Sim/Units/UnitHandler.cpp:272
0000005 0x00000000005ca30e in CGame::SimFrame (this=0x263ac00) at /home/johanr/my_projects/spring/rts/Game/Game.cpp:1578
Steps To Reproduce/give all
/give all 1
/give all
Additional Information99.0.1-80-g8b50289
zk 1.3.7.2
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0014931

cleanrock (reporter)

Second run:
Program received signal SIGFPE, Arithmetic exception.
0x00000000005da501 in CGameHelper::GenerateWeaponTargets (weapon=0x399afc00, avoidUnit=0x0, targets=std::multimap with 0 elements)
    at /home/johanr/my_projects/spring/rts/Game/GameHelper.cpp:645
645 const float secDamage = weaponDef->damages.GetDefaultDamage() * weapon->salvoSize / weapon->reloadTime * GAME_SPEED;

(gdb) bt
#0 0x00000000005da501 in CGameHelper::GenerateWeaponTargets (weapon=0x399afc00, avoidUnit=0x0, targets=std::multimap with 0 elements)
    at /home/johanr/my_projects/spring/rts/Game/GameHelper.cpp:645
#1 0x0000000000ec0934 in CWeapon::AutoTarget (this=0x399afc00) at /home/johanr/my_projects/spring/rts/Sim/Weapons/Weapon.cpp:651
#2 0x0000000000ec0cf4 in CWeapon::SlowUpdate (this=0x399afc00) at /home/johanr/my_projects/spring/rts/Sim/Weapons/Weapon.cpp:723
0000003 0x0000000000e77406 in CUnit::SlowUpdateWeapons (this=0x7fffcec96000) at /home/johanr/my_projects/spring/rts/Sim/Units/Unit.cpp:1089
0000004 0x0000000000e96c58 in CUnitHandler::Update (this=0x142e2a00) at /home/johanr/my_projects/spring/rts/Sim/Units/UnitHandler.cpp:272
0000005 0x00000000005ca30e in CGame::SimFrame (this=0x1d59200) at /home/johanr/my_projects/spring/rts/Game/Game.cpp:1578
#6 0x000000000071b0cf in CGame::ClientReadNet (this=0x1d59200) at /home/johanr/my_projects/spring/rts/Net/NetCommands.cpp:505

~0014932

cleanrock (reporter)

bt full from second run:
(gdb) bt full
#0 0x00000000005da501 in CGameHelper::GenerateWeaponTargets (weapon=0x399afc00, avoidUnit=0x0, targets=std::multimap with 0 elements)
    at /home/johanr/my_projects/spring/rts/Game/GameHelper.cpp:645
        owner = 0x7fffcec96000
        radius = 9000
        pos = @0x7fffcec961fc: {static binder = {class_ = 0x1c81780, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x13756a8 <float3::memberRegistrator>,
            name = 0xfa013d "float3", size = 12, alignment = 4, hasVTable = false, isCregStruct = true, constructor = 0xa8e196 <float3::_ConstructInstance(void*)>,
            destructor = 0xa8e1c4 <float3::_DestructInstance(void*)>, nextBinder = 0x1375620 <itype2<unsigned short>::binder>},
          static memberRegistrator = 0x13757a0 <float3mreg>, static creg_hasVTable = false, static creg_isStruct = true, static CMP_EPS = 9.99999975e-05,
          static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 8191, static maxzpos = 8191, {{x = 3320, y = 5.59063911, z = 3929}, {r = 3320, g = 5.59063911, b = 3929}, {
              x1 = 3320, y1 = 5.59063911, x2 = 3929}, {s = 3320, t = 5.59063911, p = 3929}, {xstart = 3320, ystart = 5.59063911, xend = 3929}}}
        aHeight = 373.090637
        lastAttacker = 0x0
        weaponDef = 0x119e6378
        heightMod = 1
        secDamage = -nan(0x7fd450)
        paralyzer = false
        quads = std::vector of length 1220091659941516321, capacity 35184165673087 = {<error reading variable quads (Cannot access memory at address 0x0)>
        tempNum = 32767
#1 0x0000000000ec0934 in CWeapon::AutoTarget (this=0x399afc00) at /home/johanr/my_projects/spring/rts/Sim/Weapons/Weapon.cpp:651
        avoidUnit = 0x0
        targets = std::multimap with 0 elements
        goodTargetUnit = 0xec0d14 <CWeapon::HoldIfTargetInvalid()+24>
        badTargetUnit = 0x7fffffffd570
#2 0x0000000000ec0cf4 in CWeapon::SlowUpdate (this=0x399afc00) at /home/johanr/my_projects/spring/rts/Sim/Weapons/Weapon.cpp:723
No locals.
0000003 0x0000000000e77406 in CUnit::SlowUpdateWeapons (this=0x7fffcec96000) at /home/johanr/my_projects/spring/rts/Sim/Units/Unit.cpp:1089
        w = 0x399afc00
        __for_range = std::vector of length 6, capacity 6 = {0x399b1000, 0x399af400, 0x399af800, 0x399afc00, 0x399aec00, 0x399af000}
        __for_begin =
        __for_end =
0000004 0x0000000000e96c58 in CUnitHandler::Update (this=0x142e2a00) at /home/johanr/my_projects/spring/rts/Sim/Units/UnitHandler.cpp:272
        unit = 0x7fffcec96000
        myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 1580, starttime = {static binder = {class_ = 0x1c81c00,
                base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1371c88 <spring_time::memberRegistrator>, name = 0xf8b959 "spring_time", size = 8, alignment = 8,
                hasVTable = false, isCregStruct = true, constructor = 0xa30738 <spring_time::_ConstructInstance(void*)>,
                destructor = 0xa30766 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1371b80 <CRectangleOptimizer::binder>},
              static memberRegistrator = 0x1371db8 <spring_timemreg>, static creg_hasVTable = false, static creg_isStruct = true, x = 37640383625,
              static xs = 1436270443149761228}, nameIterator = {first = 1580, second = "Unit::SlowUpdate"}}, autoShowGraph = false, it = {first = 1580, second = 1}}
        n = 1
        UNIT_SANITY_CHECK = {<No data fields>}
0000005 0x00000000005ca30e in CGame::SimFrame (this=0x1d59200) at /home/johanr/my_projects/spring/rts/Game/Game.cpp:1578
        myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 796, starttime = {static binder = {class_ = 0x1c81c00,
                base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1371c88 <spring_time::memberRegistrator>, name = 0xf8b959 "spring_time", size = 8, alignment = 8,
                hasVTable = false, isCregStruct = true, constructor = 0xa30738 <spring_time::_ConstructInstance(void*)>,
                destructor = 0xa30766 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1371b80 <CRectangleOptimizer::binder>},
              static memberRegistrator = 0x1371db8 <spring_timemreg>, static creg_hasVTable = false, static creg_isStruct = true, x = 37627650281,
              static xs = 1436270443149761228}, nameIterator = {first = 796, second = "SimFrame"}}, autoShowGraph = false, it = {first = 796, second = 1}}
#6 0x000000000071b0cf in CGame::ClientReadNet (this=0x1d59200) at /home/johanr/my_projects/spring/rts/Net/NetCommands.cpp:505
        packet = {px = 0x7fffc9efac80, pn = {pi_ = 0x7fffcde9b300}}
        inbuf = 0x7fffd4977928 "\002x\227\324\377\177"
        dataLength = 1
        packetCode = 2 '\002'
        msgProcEndTime = {static binder = {class_ = 0x1c81c00, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1371c88 <spring_time::memberRegistrator>,
            name = 0xf8b959 "spring_time", size = 8, alignment = 8, hasVTable = false, isCregStruct = true, constructor = 0xa30738 <spring_time::_ConstructInstance(void*)>,
            destructor = 0xa30766 <spring_time::_DestructInstance(void*)>, nextBinder = 0x1371b80 <CRectangleOptimizer::binder>},
          static memberRegistrator = 0x1371db8 <spring_timemreg>, static creg_hasVTable = false, static creg_isStruct = true, x = 37656766596,
          static xs = 1436270443149761228}
        __FUNCTION__ = "ClientReadNet"
        __PRETTY_FUNCTION__ = "void CGame::ClientReadNet()"

~0014933

cleanrock (reporter)

(gdb) p *weaponDef
$2 = {static binder = {class_ = 0x1d46e80, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x139eca8 <WeaponDef::memberRegistrator>, name = 0x102df2e "WeaponDef",
    size = 776, alignment = 8, hasVTable = false, isCregStruct = true, constructor = 0xec6676 <WeaponDef::_ConstructInstance(void*)>,
    destructor = 0xec66d0 <WeaponDef::_DestructInstance(void*)>, nextBinder = 0x139eb40 <CWeapon::binder>}, static memberRegistrator = 0x0, static creg_hasVTable = false,
  static creg_isStruct = true, name = "mahlazer_cutter", type = "BeamLaser", description = "Groovecutter", ptrailExplosionGeneratorID = 4294967295,
  impactExplosionGeneratorID = 258, bounceExplosionGeneratorID = 4294967295, fireSound = {sounds = std::vector of length 1, capacity 1 = {{name = "weapon/laser/laser_burn6",
        id = 135, volume = 1}}}, hitSound = {sounds = std::vector of length 2, capacity 2 = {{name = "", id = -1, volume = 18.9736652}, {name = "", id = -1,
        volume = 18.9736652}}}, range = 9000, heightmod = 1, accuracy = 0, sprayAngle = 0, movingAccuracy = 0, ownerExpAccWeight = 0, targetMoveError = 0, leadLimit = -1,
  leadBonus = 0, predictBoost = 0, damages = {static binder = {class_ = 0x1c80e00, base = 0x0, flags = creg::CF_None,
      memberRegistrator = 0x138d948 <DamageArray::memberRegistrator>, name = 0xfeec1d "DamageArray", size = 48, alignment = 8, hasVTable = false, isCregStruct = true,
      constructor = 0xcf60e8 <DamageArray::_ConstructInstance(void*)>, destructor = 0xcf614a <DamageArray::_DestructInstance(void*)>,
      nextBinder = 0x138d800 <CollisionVolume::binder>}, static memberRegistrator = 0x138d9b0 <DamageArraymreg>, static creg_hasVTable = false, static creg_isStruct = true,
    paralyzeDamageTime = 0, impulseFactor = 0, impulseBoost = 0, craterMult = 4, craterBoost = 2, damages = std::vector of length 5, capacity 5 = {180, 180, 180, 180, 180}},
  craterAreaOfEffect = 42, damageAreaOfEffect = 28, noSelfDamage = true, fireStarter = 0, edgeEffectiveness = 0, size = 2.45000005, sizeGrowth = 0.5,
  collisionSize = 0.0500000007, salvosize = 1, salvodelay = 0.100000001, reload = 0.0299999993, beamtime = 0.00100000005, beamburst = false, waterBounce = false,
  groundBounce = false, bounceRebound = 1, bounceSlip = 1, numBounce = -1, maxAngle = 0.958738029, maxFireAngle = -1, uptime = 0, flighttime = 0, metalcost = 0,
  energycost = 0, projectilespershot = 1, id = 719, tdfId = 0, turret = true, onlyForward = false, allowNonBlockingAim = false, fixedLauncher = false, waterweapon = true,
  fireSubmersed = true, submissile = false, tracks = false, paralyzer = false, impactOnly = false, noAutoTarget = false, manualfire = false, interceptSolo = true,
  interceptor = 0, targetable = 0, stockpile = false, coverageRange = 0, stockpileTime = 30, intensity = 0.899999976, falloffRate = 0.5, duration = 0.0500000007,
  beamLaserTTL = 0, soundTrigger = true, selfExplode = false, gravityAffected = false, highTrajectory = 2, myGravity = 0, noExplode = false, startvelocity = 0.00999999978,
  weaponacceleration = 0, turnrate = 0, projectilespeed = 46.6666679, explosionSpeed = 3.23358369, wobble = 0, dance = 0, trajectoryHeight = 0, largeBeamLaser = true,
  laserHardStop = false, isShield = false, shieldRepulser = false, smartShield = false, exteriorShield = false, visibleShield = false, visibleShieldRepulse = false,
  visibleShieldHitFrames = 0, shieldEnergyUse = 0, shieldRadius = 0, shieldForce = 0, shieldMaxSpeed = 0, shieldPower = 0, shieldPowerRegen = 0, shieldPowerRegenEnergy = 0,
  shieldStartingPower = 0, shieldRechargeDelay = 0, shieldGoodColor = {static binder = {class_ = 0x1c81780, base = 0x0, flags = creg::CF_None,
      memberRegistrator = 0x13756a8 <float3::memberRegistrator>, name = 0xfa013d "float3", size = 12, alignment = 4, hasVTable = false, isCregStruct = true,
      constructor = 0xa8e196 <float3::_ConstructInstance(void*)>, destructor = 0xa8e1c4 <float3::_DestructInstance(void*)>,
      nextBinder = 0x1375620 <itype2<unsigned short>::binder>}, static memberRegistrator = 0x13757a0 <float3mreg>, static creg_hasVTable = false,
    static creg_isStruct = true, static CMP_EPS = 9.99999975e-05, static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 8191, static maxzpos = 8191, {{x = 0.5, y = 0.5,
        z = 1}, {r = 0.5, g = 0.5, b = 1}, {x1 = 0.5, y1 = 0.5, x2 = 1}, {s = 0.5, t = 0.5, p = 1}, {xstart = 0.5, ystart = 0.5, xend = 1}}}, shieldBadColor = {
    static binder = {class_ = 0x1c81780, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x13756a8 <float3::memberRegistrator>, name = 0xfa013d "float3", size = 12,
      alignment = 4, hasVTable = false, isCregStruct = true, constructor = 0xa8e196 <float3::_ConstructInstance(void*)>,
      destructor = 0xa8e1c4 <float3::_DestructInstance(void*)>, nextBinder = 0x1375620 <itype2<unsigned short>::binder>}, static memberRegistrator = 0x13757a0 <float3mreg>,
    static creg_hasVTable = false, static creg_isStruct = true, static CMP_EPS = 9.99999975e-05, static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 8191,
    static maxzpos = 8191, {{x = 1, y = 0.5, z = 0.5}, {r = 1, g = 0.5, b = 0.5}, {x1 = 1, y1 = 0.5, x2 = 0.5}, {s = 1, t = 0.5, p = 0.5}, {xstart = 1, ystart = 0.5,
        xend = 0.5}}}, shieldAlpha = 0.200000003, shieldArmorType = 0, shieldArmorTypeName = "default", shieldInterceptType = 0, interceptedByShieldType = 1,
  avoidFriendly = true, avoidFeature = false, avoidNeutral = false, avoidGround = true, targetBorder = 0, cylinderTargeting = 0, minIntensity = 1, heightBoostFactor = -1,
  proximityPriority = 1, projectileType = 64, collisionFlags = 0, sweepFire = false, canAttackGround = false, cameraShake = 180, dynDamageExp = 0, dynDamageMin = 0,
  dynDamageRange = 0, dynDamageInverted = false, customParams = std::map with 2 elements = {["statsdamage"] = "180", ["weaponvelocity"] = "1400"}, visuals = {color = {
      static binder = {class_ = 0x1c81780, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x13756a8 <float3::memberRegistrator>, name = 0xfa013d "float3", size = 12,
        alignment = 4, hasVTable = false, isCregStruct = true, constructor = 0xa8e196 <float3::_ConstructInstance(void*)>,
        destructor = 0xa8e1c4 <float3::_DestructInstance(void*)>, nextBinder = 0x1375620 <itype2<unsigned short>::binder>},
      static memberRegistrator = 0x13757a0 <float3mreg>, static creg_hasVTable = false, static creg_isStruct = true, static CMP_EPS = 9.99999975e-05,
      static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 8191, static maxzpos = 8191, {{x = 0.25, y = 0, z = 1}, {r = 0.25, g = 0, b = 1}, {x1 = 0.25, y1 = 0, x2 = 1}, {
          s = 0.25, t = 0, p = 1}, {xstart = 0.25, ystart = 0, xend = 1}}}, color2 = {static binder = {class_ = 0x1c81780, base = 0x0, flags = creg::CF_None,
        memberRegistrator = 0x13756a8 <float3::memberRegistrator>, name = 0xfa013d "float3", size = 12, alignment = 4, hasVTable = false, isCregStruct = true,
        constructor = 0xa8e196 <float3::_ConstructInstance(void*)>, destructor = 0xa8e1c4 <float3::_DestructInstance(void*)>,
        nextBinder = 0x1375620 <itype2<unsigned short>::binder>}, static memberRegistrator = 0x13757a0 <float3mreg>, static creg_hasVTable = false,
      static creg_isStruct = true, static CMP_EPS = 9.99999975e-05, static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 8191, static maxzpos = 8191, {{x = 1, y = 1,
          z = 1}, {r = 1, g = 1, b = 1}, {x1 = 1, y1 = 1, x2 = 1}, {s = 1, t = 1, p = 1}, {xstart = 1, ystart = 1, xend = 1}}}, model = 0x0, modelName = "", texNames = {
      "largelaser_long", "flare", "flare", "smallflare"}, ptrailExpGenTag = "", impactExpGenTag = "custom:FLASHLAZER", bounceExpGenTag = "", colorMap = 0x0,
    explosionScar = true, smokeTrail = false, texture1 = 0x1f650528, texture2 = 0x1f6501e8, texture3 = 0x1f6501e8, texture4 = 0x1f650e28, tilelength = 800, scrollspeed = 5,
    pulseSpeed = 1, laserflaresize = 12, thickness = 16, corethickness = 0.5, lodDistance = 1000, beamdecay = 1, stages = 5, alphaDecay = 1, sizeDecay = 0, separation = 1,
    noGap = true, alwaysVisible = true}}

~0014934

hokomoko (developer)

Fix 606c94e33231575593ee8363142f4f0259f91312 committed to develop branch: Attempt to fix 0004891, repo: spring changeset id: 5326
+Notes

-Issue History
Date Modified Username Field Change
2015-07-07 13:56 cleanrock New Issue
2015-07-07 14:04 cleanrock Note Added: 0014931
2015-07-07 14:16 cleanrock Note Added: 0014932
2015-07-07 14:25 cleanrock Note Added: 0014933
2015-07-07 14:26 hokomoko Changeset attached => spring develop 606c94e3
2015-07-07 14:26 hokomoko Note Added: 0014934
2015-07-07 14:26 hokomoko Assigned To => hokomoko
2015-07-07 14:26 hokomoko Status new => resolved
2015-07-07 14:26 hokomoko Resolution open => fixed
+Issue History