Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

SIGFPE (division by zero) in random number app

Offen
#160 3 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
cpp
Bereich
embedded-iot

Rechercherichtung

Reproduziere den Absturz in der Zufallszahlen-App und untersuche anschließend InfiniTime/src/components/motion/MotionController.cpp sowie MotionController::ShouldShakeWake, wobei du dich auf den Fall time == lastTime konzentrierst. Prüfe den beigefügten Patch InfiniTime_FPE.zip und ermittle, ob der Guard in InfiniTime gehört oder lediglich ein Simulatorproblem umgeht. Erledigt ist die Aufgabe, wenn wiederholte Generierung von Zufallszahlen den Simulator nicht mehr mit SIGFPE beendet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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")

Vorherrschende Sprache
C++
Sterne
203
Forks
99
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Keine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus InfiniTimeOrg/InfiniSim

Alle Issues in InfiniTimeOrg/InfiniSim

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.