--- a/plugger.py Sun Dec 06 19:06:36 2009 +0100
+++ b/plugger.py Sun Dec 06 19:39:24 2009 +0100
@@ -1692,11 +1692,13 @@
# This lock is used to avoid flooding wx event stack calling callafter
while (not self.debug_break) and (self._connector is not None):
plc_status, debug_tick, debug_vars = self._connector.GetTraceVariables()
#print debug_tick, debug_vars
self.IECdebug_lock.acquire()
if debug_vars is not None:
if len(debug_vars) == len(self.TracedIECPath):
for IECPath,value in zip(self.TracedIECPath, debug_vars):
@@ -1707,6 +1709,12 @@
_("Debug data do not match requested variable count %d != %d\n")%(len(debug_vars), len(self.TracedIECPath)))
if plc_status == "Started":
+ # Just in case, re-register debug registry to PLC + if debug_getvar_retry == 0: + wx.CallAfter(self.RegisterDebugVarToConnector) + wx.CallAfter(self.logger.write_warning, + _("Waiting debugger to recover...\n")) + debug_getvar_retry += 1 # Be patient, tollerate PLC to come up before debugging
--- a/runtime/PLCObject.py Sun Dec 06 19:06:36 2009 +0100
+++ b/runtime/PLCObject.py Sun Dec 06 19:39:24 2009 +0100
@@ -399,7 +399,7 @@
self.PLClibraryLock.release()
+ if offset == size.value: return self.PLCStatus, tick.value, res
PLCprint("Debug error - bad buffer unpack !")