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: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 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
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
blackhole
Beiträge: 3718
Registriert: 21.07.2015, 14:03
System: CCU
Hat sich bedankt: 184 Mal
Danksagung erhalten: 586 Mal

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: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 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 ^^
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Benutzeravatar
jmaus
Beiträge: 9818
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 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.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Antworten

Zurück zu „RaspberryMatic“