Endlosschleifen automatisiert erkennen (Code oder Laufzeit)?

Status
Nicht offen für weitere Antworten.

Novanic

Bekanntes Mitglied
Hallo Leute,

ich bin dabei etwas ähnliches wie CruiseControl zu entwickeln (es kann Code reingegeben werden, der kompiliert und ausgeführt wird). Jetzt könnte es vorkommen das ein Experte eine Endlosschleife eingebaut hat und von meinem Programm kompiliert und ausgeführt wird. Danach ist die Machine dann natürlich völlig ausgelastet und nichts geht mehr...

Mir würden dazu zwei Ansätze einfallen:
- entweder die Schleife wird vorher z.B. mit JDT analysiert, was allerdings zu hoher Auswand und zu unsicher wäre
- oder es wird eine Abbruchbedingung in die Schleifen generiert, was aber auch sehr schmutzig wäre...

Gibt es eine bessere Lösung um Endlosschleifen zu erkennen? Kann man zur Laufzeit auf einen Stack zugreifen indem die Durchläufe "registriert" sind oder kann man die Auslastung eines Threads überwachen oder so etwas?

Danke schonmal.

Gruß Nova
 

Novanic

Bekanntes Mitglied
Naja, also der Code wird von dem Programm nur über Unit-Tests ausgeführt. Man könnte ja zum Beispiel definieren das Schleifen im Test-Kontext nicht mehr als 100.000 mal laufen dürfen. Bei Rekursion könnte man vielleicht den Stack abfragen, bei for- oder while-Schleifen wird das wohl nicht gehen. Man könnte auch die Ausführung der Tests zeitlich begrenzen, wobei die Maschine dann aber auch für die entsprechende Zeit völlig ausgelastet und unbrauchbar wäre. Auch nicht schön...
Mich würde ja mal interessieren wie sich CruiseControl verhält wenn eine Endlosschleife auftaucht. Fliegt der dann auch so gnadenlos ab und kann nur noch neugestartet werden? :)
 

Wildcard

Top Contributor
Du kannst den Thread/Prozess nach eine Zeitspanne X abschießen. Nicht mehr und nicht weniger.
Irgendwelchen Code zur Compile/Runtime untersuchen zu wollen ist völlig illusorisch.
 
G

Gast

Gast
Ganz genau. Endlos Schleifen (immer und für beliebigen Code) zu erkennen ist unmöglich da es sich um ein NP-vollständiges Problem handelt.
 

Novanic

Bekanntes Mitglied
Ok, dann bleibt mir wohl nur die Möglichkeit den Thread nach einer bestimmten Zeit abzubrechen.
Es hätte ja sein können, das man feststellen kann wie oft eine Zeile durchlaufen wurde. Bei Rekursion wäre das ja über den Stack möglich...
Danke für eure Hilfe und Infos. :)

Gruß Nova
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Endlosschleifen automatisch erkennen Allgemeine Java-Themen 6
V java programm bzw. teilprogramm automatisiert starten Allgemeine Java-Themen 3
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
I Best Practice Kreise erkennen Allgemeine Java-Themen 1
N Erkennen eines Programs Allgemeine Java-Themen 2
P Strukturänderungen/abnormalien in Logfiles automatisch erkennen Allgemeine Java-Themen 5
A 2D-Grafik Einfachster Ansatz, um sich wiederholende Figur in einem 2D-Image zu erkennen Allgemeine Java-Themen 1
T Java Windows sounds erkennen Allgemeine Java-Themen 1
M Backslash erkennen Allgemeine Java-Themen 4
D Flasche Eingabe erkennen Allgemeine Java-Themen 4
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Datei zugriffe erkennen Allgemeine Java-Themen 25
A Großbuchstaben erkennen (Prozente) Allgemeine Java-Themen 2
U Erkennen, ob PC benutzt wird Allgemeine Java-Themen 4
B Erkennen, wann Prozess beendet ist, dann Thread beenden. Allgemeine Java-Themen 6
S Generellen MausKlick am PC erkennen Allgemeine Java-Themen 1
J Erkennen, ob Programm in JAR (neues Problem) Allgemeine Java-Themen 7
B Erste Schritte Plugin erkennen und Class Dateien anzeigen lassen Allgemeine Java-Themen 3
T Sechsecke, erkennen von bestimmten Werten Allgemeine Java-Themen 9
M Erkennen, in welcher Methode sich die VM befindet Allgemeine Java-Themen 6
Hoppelmann "Variable" in String erkennen Allgemeine Java-Themen 2
D IP / Domain in einem String erkennen Allgemeine Java-Themen 2
J jexcelapi - Erkennen von Sheets Allgemeine Java-Themen 3
B Mausbewegung im Thread erkennen (hoch/runter) Allgemeine Java-Themen 6
K Quadrat in einem Bild erkennen Allgemeine Java-Themen 33
D Regex Raute erkennen Allgemeine Java-Themen 2
F Groovy Erkennen geometrischer Formen in einem Kantenbild Allgemeine Java-Themen 4
K Wiederholungen in Datensatz erkennen?! Allgemeine Java-Themen 6
S Wörter ohne Leerzeichen erkennen Allgemeine Java-Themen 5
M Festplatte am Namen erkennen Allgemeine Java-Themen 2
A Erkennen welches Fenster bei windowDeactivated aktiviert wird? Allgemeine Java-Themen 2
C Reguläre Ausrücke Punkte im Satz richtig erkennen Allgemeine Java-Themen 6
J Exe Datei in Java erkennen??? Allgemeine Java-Themen 4
P Netzlaufwerke erkennen Allgemeine Java-Themen 3
H File Attribut bzw Link erkennen Allgemeine Java-Themen 5
DamienX Debug Modus zur Laufzeit erkennen Allgemeine Java-Themen 3
data89 Barcodes in Bild erkennen Allgemeine Java-Themen 17
G Wechseldatenträger erkennen Allgemeine Java-Themen 5
T Shapes vergleichen? Zeichen erkennen? Allgemeine Java-Themen 7
Daniel_L RTF - Format aus Zwischenablage erkennen und "einlesen"? Allgemeine Java-Themen 5
B Zeilenumbruch erkennen Allgemeine Java-Themen 22
H Dateiende erkennen, wie? Allgemeine Java-Themen 7
S Dateiart erkennen Allgemeine Java-Themen 13
X Position eines Gegenstandes über Webcam erkennen Allgemeine Java-Themen 11
S unter UNIX - (symbolic) links erkennen? Allgemeine Java-Themen 12
D Datum korrekt erkennen Allgemeine Java-Themen 27
G Stringformen erkennen Allgemeine Java-Themen 8
G Größte zusammenhängende Fläche erkennen Allgemeine Java-Themen 3
K ersten programmstart erkennen Allgemeine Java-Themen 7
S JTree selektion erkennen und drauf reagieren Allgemeine Java-Themen 2
E Regexfrage (' erkennen) Allgemeine Java-Themen 4
C WindowStyle von Windows erkennen. Allgemeine Java-Themen 3
J Erkennen aus welchem Pfad das Jar gestartet wurde Allgemeine Java-Themen 6
B Erkennen welche Objekte den Heap verbrauchen? Allgemeine Java-Themen 2
MQue JButton erkennen Allgemeine Java-Themen 2
V Erkennen ob das Programm aus Jar File geladen wurde Allgemeine Java-Themen 9
T Einfachen Ton erkennen Allgemeine Java-Themen 7
R Hinzufügen von Dateien in einem Verzeichniss Auto. erkennen! Allgemeine Java-Themen 15
L objekte erkennen? Allgemeine Java-Themen 9
M Encoding automatisch erkennen Allgemeine Java-Themen 4
J Programmteile erkennen? Allgemeine Java-Themen 4
H Exception erkennen Allgemeine Java-Themen 10
S Farbe erkennen! Allgemeine Java-Themen 3
H existierende dateien erkennen Allgemeine Java-Themen 9
Natorion Erkennen ob das Programm mittels Jar-Datei oder class . Allgemeine Java-Themen 9
G String als Zahl erkennen Allgemeine Java-Themen 19

Ähnliche Java Themen

Neue Themen


Oben