Explorar o código

Fixed lowest function call in call stack

Yentl Van Tendeloo %!s(int64=9) %!d(string=hai) anos
pai
achega
2ffb99a9f6
Modificáronse 2 ficheiros con 6 adicións e 4 borrados
  1. 5 3
      kernel/modelverse_kernel/main.py
  2. 1 1
      kernel/mvk_server/server.py

+ 5 - 3
kernel/modelverse_kernel/main.py

@@ -19,7 +19,7 @@ class ModelverseKernel(object):
         self.generators = {}
         self.generators = {}
         self.allow_compiled = True
         self.allow_compiled = True
         #self.allow_compiled = False
         #self.allow_compiled = False
-        self.debug_info = defaultdict(lambda: ["None"])
+        self.debug_info = defaultdict(list)
 
 
     def execute_yields(self, username, operation, params, reply):
     def execute_yields(self, username, operation, params, reply):
         try:
         try:
@@ -60,7 +60,9 @@ class ModelverseKernel(object):
                                    ("RV", [self.inst]),
                                    ("RV", [self.inst]),
                                   ]
                                   ]
             if self.new_debug is not None:
             if self.new_debug is not None:
-                self.debug_info[username][-1], = yield [("RV", [self.new_debug])]
+                if len(self.debug_info[username]) > 0:
+                    self.debug_info[username][-1], = yield [("RV", [self.new_debug])]
+                    print(self.debug_info[username])
 
 
             if self.phase_v == "finish":
             if self.phase_v == "finish":
                 gen = self.helper_init(user_root)
                 gen = self.helper_init(user_root)
@@ -531,12 +533,12 @@ class ModelverseKernel(object):
         value, =            yield [("RD", [inst, "value"])]
         value, =            yield [("RD", [inst, "value"])]
 
 
         if value is None:
         if value is None:
-            self.debug_info[self.username].pop()
             prev_frame, =   yield [("RD", [user_frame, "prev"])]
             prev_frame, =   yield [("RD", [user_frame, "prev"])]
             if prev_frame is None:
             if prev_frame is None:
                 _, =            yield [("DN", [user_root])]
                 _, =            yield [("DN", [user_root])]
                 del self.debug_info[self.username]
                 del self.debug_info[self.username]
             else:
             else:
+                self.debug_info[self.username].pop()
                 _, _ =          yield [("CD", [user_root, "frame", prev_frame]),
                 _, _ =          yield [("CD", [user_root, "frame", prev_frame]),
                                        ("DN", [user_frame]),
                                        ("DN", [user_frame]),
                                       ]
                                       ]

+ 1 - 1
kernel/mvk_server/server.py

@@ -1,7 +1,7 @@
 """
 """
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 Generated by Statechart compiler by Glenn De Jonghe, Joeri Exelmans, Simon Van Mierlo, and Yentl Van Tendeloo (for the inspiration)
 
 
-Date:   Fri Feb 10 11:29:04 2017
+Date:   Fri Feb 10 11:42:33 2017
 
 
 Model author: Yentl Van Tendeloo
 Model author: Yentl Van Tendeloo
 Model name:   MvK Server
 Model name:   MvK Server