InfiniTimeOrg / InfiniSim

Simulator for InfiniTime user interface without needing a PineTime
GNU General Public License v3.0
166 stars 66 forks source link

SIGFPE (division by zero) in random number app #160

Open lmamane opened 1 day ago

lmamane commented 1 day ago

Enter the random number app. Click the "generate random number" button, or one of the "+" or "-" buttons, a few times. Most of the times, this will stop the simulator process with a SIGFPE due to a division by zero in InfiniTime/src/components/motion/MotionController.cpp, function MotionController::ShouldShakeWake, because time == lastTime

This looks like having time == lastTime could be a simulator bug, not an issue on actual hardware, not sure.

Here's the patch I have applied locally to InfiniTime; let me know if you think it should go to InfiniTime (cleaned up of debugging output to cerr, obviously) for better robustness or is just a work-around for a simulator bug.

InfiniTime_FPE.zip

(sorry I upload it as a ZIP file, github doesn't let me attach a patch file with a messaging listing the supported file types, among which "PATCH")

lmamane commented 1 day ago

Another way to trigger: enter settings, wake up setttings, enable "Shake Wake", then disable it again