Bug mit Klammerstack (und wirren Zeug aus dem Cache)

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
Benutzeravatar
Black
Beiträge: 1802
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Bug mit Klammerstack (und wirren Zeug aus dem Cache)

Beitrag von Black » 07.01.2019, 14:40

Der Fehler, wo wirrer, nicht im Programm vorkommendem Text auf einmal als fehlermeldung angezeigt wurde, wurde hier ja auch schon einmal gemeldet und lässt sich reproduzieren:

Dieser kleine 4 zeiler:

Code: Alles auswählen

if (true) {
  if (true) {
   if (true) {
WriteLine ("Ab ins Nirvana");   
Bringt folgenden, wirren, nicht zu dem "Programm" passenden Fehler
Jan 7 14:23:52 homematic-ccu2 local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 8 col 2 near ^aus !# !# 3'2013-7'2014 hobbyquaker https://github.com/hobbyquaker !# string oP^M [iseESP.cpp:1137]
Jan 7 14:23:52 homematic-ccu2 local0.err ReGaHss: Error: ParseProgram: SyntaxError= aus !# !# 3'2013-7'2014 hobbyquaker https://github.com/hobbyquaker !# string oPrgID; object oProgram; boolean first = true; Write('{'); foreach (oPrgID, dom.GetObject(ID_PROGRAMS).EnumUsedIDs()) { oProgram = dom.GetObject(oPrgID); if(oProgram != null) { if (first == false) { WriteLine(','); } else { first = false; } Write('"' # oPrgID # '":{"Name":"'); WriteURL(oProgram.Name()); Wr
Jan 7 14:23:52 homematic-ccu2 local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 8 col 2 near ^aus !# !# 3'2013-7'2014 hobbyquaker https://github.com/hobbyquaker !# string oP^M [iseESP.cpp:1137]
Jan 7 14:23:52 homematic-ccu2 local0.err ReGaHss: Error: ParseProgram: SyntaxError= aus !# !# 3'2013-7'2014 hobbyquaker https://github.com/hobbyquaker !# string oPrgID; object oProgram; boolean first = true; Write('{'); foreach (oPrgID, dom.GetObject(ID_PROGRAMS).EnumUsedIDs()) { oProgram = dom.GetObject(oPrgID); if(oProgram != null) { if (first == false) { WriteLine(','); } else { first = false; } Write('"' # oPrgID # '":{"Name":"'); WriteURL(oProgram.Name()); Wr
Jan 7 14:23:52 homematic-ccu2 local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 8 col 2 near ^aus !# !# 3'2013-7'2014 hobbyquaker https://github.com/hobbyquaker !# string oP^M [iseESP.cpp:1137]
Jan 7 14:23:52 homematic-ccu2 local0.err ReGaHss: Error: ParseProgram: SyntaxError= aus !# !# 3'2013-7'2014 hobbyquaker https://github.com/hobbyquaker !# string oPrgID; object oProgram; boolean first = true; Write('{'); foreach (oPrgID, dom.GetObject(ID_PROGRAMS).EnumUsedIDs()) { oProgram = dom.GetObject(oPrgID); if(oProgram != null) { if (first == false) { WriteLine(','); } else { first = false; } Write('"' # oPrgID # '":{"Name":"'); WriteURL(oProgram.Name()); Wr
Das wirre zeug kommt aus einer der Dateien, die im chache der CCU liegen (system.CacheInfo () ); und wird bei jedem wohl anders aussehen

Ist aber meiner Meinung ein Bug.

(wirre Stackpointer oder MemHeaps machen mich immer ein bisschen nervös ... )

Black
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 3.45.7.20190507 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker unter ProxMox auf NUC als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.3
SDV 3.08.11 Scripteditor und Objektinspektor

Benutzeravatar
blackhole
Beiträge: 1623
Registriert: 21.07.2015, 14:03
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Bug mit Klammerstack (und wirren Zeug aus dem Cache)

Beitrag von blackhole » 07.01.2019, 15:19

Bei einer CCU3 mit Firmware 3.41.11 sieht das so aus:

Eingabe (mit korrekter Klammersetzung):

Code: Alles auswählen

if (true) {
  if (true) {
   if (true) {
WriteLine ("Ab ins Nirvana"); }}}
WriteLine("Hallo Welt!");
Ausgabe:

Code: Alles auswählen

Ab ins Nirvana
Hallo Welt!
Eingabe (mit falscher Klammersetzung):

Code: Alles auswählen

if (true) {
  if (true) {
   if (true) {
WriteLine ("Ab ins Nirvana"); 
WriteLine("Hallo Welt!");
Ausgabe: [keine]

Der zugehörige Log-Auszug:

Code: Alles auswählen

Jan  7 15:23:59 ccu3-webui local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 5 col 27 near ^if ( system.IsVar("_session_id_") ) {  var id = system.GetVar("_session_id_");         ^M  [iseESP.cpp:1121]
Jan  7 15:23:59 ccu3-webui local0.err ReGaHss: Error: ParseProgram: SyntaxError= if ( system.IsVar("_session_id_") ) {  var id = system.GetVar("_session_id_");         var s  = system.GetSessionVarStr(id);   if (s) { upl = s.StrValueByIndex(";", 1); } }  Write(upl); [iseESP.cpp:374]
Jan  7 15:23:59 ccu3-webui local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 5 col 27 near ^if ( system.IsVar("_session_id_") ) {  var id = system.GetVar("_session_id_");         ^M  [iseESP.cpp:1121]
Jan  7 15:23:59 ccu3-webui local0.err ReGaHss: Error: ParseProgram: SyntaxError= if ( system.IsVar("_session_id_") ) {  var id = system.GetVar("_session_id_");         var s  = system.GetSessionVarStr(id);   if (s) { upl = s.StrValueByIndex(";", 1); } }  Write(upl); [iseESP.cpp:374]
Jan  7 15:23:59 ccu3-webui local0.err ReGaHss: Error: IseESP::SyntaxError= Error 1 at row 5 col 27 near ^if ( system.IsVar("_session_id_") ) {  var id = system.GetVar("_session_id_");         ^M  [iseESP.cpp:1121]
Jan  7 15:23:59 ccu3-webui local0.err ReGaHss: Error: ParseProgram: SyntaxError= if ( system.IsVar("_session_id_") ) {  var id = system.GetVar("_session_id_");         var s  = system.GetSessionVarStr(id);   if (s) { upl = s.StrValueByIndex(";", 1); } }  Write(upl); [iseESP.cpp:374]
Das passt meines Erachtens alles.

Benutzeravatar
Black
Beiträge: 1802
Registriert: 12.09.2015, 22:31
Wohnort: Wegberg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: Bug mit Klammerstack (und wirren Zeug aus dem Cache)

Beitrag von Black » 07.01.2019, 15:30

zeile 5 Spalte 27 zeigt bei dir auch ins Nirvana... zumindest sehe ich in dem5 Zeiler kein if ( system.IsVar("_session_id_")....

bei mrii zeigt er auch einen Fehler an, der nicht im Programm vorkommt so:...
Diesmal direkt in Script ausführen, nicht über die :8181
Stack1.jpg
Zeile 7 Spalte vier holt er sich auch irgendwoher, aber nicht aus dem programmtext des editers ^^
Die Wahrheit ist ein Chor aus Wind
Meine Seite, ok noch bisschen im Aufbau

RaspberryMatic 3.45.7.20190507 mit Groundplane Antennenmod (Mein Grundstück ist halt etwas gross)
jede Menge Sensoren und Aktoren, Logamatic 2107 Gateway zum Buderus Kessel
ioBroker unter ProxMox auf NUC als Hauptsteuersystem und Visualisierung
Script Time Scheduler V1.3
SDV 3.08.11 Scripteditor und Objektinspektor

Benutzeravatar
jmaus
Beiträge: 4804
Registriert: 17.02.2015, 14:45
Wohnort: Dresden
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Bug mit Klammerstack (und wirren Zeug aus dem Cache)

Beitrag von jmaus » 07.01.2019, 16:19

Black hat geschrieben:
07.01.2019, 15:30
Zeile 7 Spalte vier holt er sich auch irgendwoher, aber nicht aus dem programmtext des editers ^^
Das ist leider etwas mit dem du wohl oder übel weiterleben musst. Es war schon damals schwer genug ReGaHss überhaupt beizubringen beim ScriptRuntimeError Programmcode auszugeben statt der damaligen kryptischen hexadezimalen Codes der auszuführenden Operationen. Ich kann mir das gerne ja mal anschauen (das Ticket dazu hattest du ja glaube ich schon aufgemacht). Ich mache dir aber wenig Hoffnung das ich hier etwas besseres machen kann als das was er jetzt ausgibt. Der Skriptparser innerhalb von ReGaHss ist leider sehr sehr bescheiden, um es freundlich auszudrücken ;-)
RaspberryMatic 3.47.10.20190713 @ TinkerS mit ~160 HomeMatic Geräten + ioBroker – GitHubPayPalTwitter

Antworten

Zurück zu „RaspberryMatic“