# HG changeset patch # User Edouard TISSERANT # Date 1260117936 -3600 # Node ID dfc6164e40224ef573dde64402eb115d4fa97daa # Parent e01434cfcb9db81274b8c39a82913b6495301d10 Debugger still doesn't work crash less... diff -r e01434cfcb9d -r dfc6164e4022 plugger.py --- a/plugger.py Sun Dec 06 15:58:33 2009 +0100 +++ b/plugger.py Sun Dec 06 17:45:36 2009 +0100 @@ -1337,7 +1337,7 @@ for v in self._VariablesList if v["vartype"] != "FB" and v["type"] in DebugTypes ]), "find_variable_case_code":"\n".join([ " case %(num)s:\n"%v+ - " varp = (void*)&%(C_path)s;\n"%v+ + " *varp = (void*)&%(C_path)s;\n"%v+ {"PT":" return %(type)s_P_ENUM;\n", "VAR":" return %(type)s_ENUM;\n"}[v["vartype"]]%v for v in self._VariablesList if v["vartype"] != "FB" and v["type"] in DebugTypes ])} @@ -1612,7 +1612,7 @@ if Idxs: Idxs.sort() self.TracedIECPath = zip(Idxs)[2] - self._connector.SetTraceVariablesList(zip(zip(Idxs)[0:1])) + self._connector.SetTraceVariablesList(zip(*zip(*Idxs)[0:2])) self.IECdebug_lock.release() #for IEC_path, IECdebug_data in self.IECdebug_datas.iteritems(): diff -r e01434cfcb9d -r dfc6164e4022 targets/plc_debug.c --- a/targets/plc_debug.c Sun Dec 06 15:58:33 2009 +0100 +++ b/targets/plc_debug.c Sun Dec 06 17:45:36 2009 +0100 @@ -79,12 +79,14 @@ #define __BufferDebugDataIterator_case_t(TYPENAME) \ case TYPENAME##_ENUM :\ flags = ((__IEC_##TYPENAME##_t *)varp)->flags;\ - ptrvalue = &((__IEC_##TYPENAME##_t *)varp)->value; + ptrvalue = &((__IEC_##TYPENAME##_t *)varp)->value;\ + break; #define __BufferDebugDataIterator_case_p(TYPENAME)\ case TYPENAME##_P_ENUM :\ flags = ((__IEC_##TYPENAME##_p *)varp)->flags;\ - ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value; + ptrvalue = ((__IEC_##TYPENAME##_p *)varp)->value;\ + break; void BufferDebugDataIterator(void* varp, __IEC_types_enum vartype) { @@ -144,14 +146,16 @@ #define __RegisterDebugVariable_case_t(TYPENAME) \ case TYPENAME##_ENUM :\ - ((__IEC_##TYPENAME##_t *)varp)->flags |= __IEC_DEBUG_FLAG; + ((__IEC_##TYPENAME##_t *)varp)->flags |= __IEC_DEBUG_FLAG;\ + break; #define __RegisterDebugVariable_case_p(TYPENAME)\ case TYPENAME##_P_ENUM :\ - ((__IEC_##TYPENAME##_p *)varp)->flags |= __IEC_DEBUG_FLAG; + ((__IEC_##TYPENAME##_p *)varp)->flags |= __IEC_DEBUG_FLAG;\ + break; void RegisterDebugVariable(int idx) { void *varp = NULL; - switch(__find_variable(idx, varp)){ + switch(__find_variable(idx, &varp)){ ANY(__RegisterDebugVariable_case_t) ANY(__RegisterDebugVariable_case_p) default: @@ -161,11 +165,13 @@ #define __ResetDebugVariablesIterator_case_t(TYPENAME) \ case TYPENAME##_ENUM :\ - ((__IEC_##TYPENAME##_t *)varp)->flags &= ~__IEC_DEBUG_FLAG; + ((__IEC_##TYPENAME##_t *)varp)->flags &= ~__IEC_DEBUG_FLAG;\ + break; #define __ResetDebugVariablesIterator_case_p(TYPENAME)\ case TYPENAME##_P_ENUM :\ ((__IEC_##TYPENAME##_p *)varp)->flags &= ~__IEC_DEBUG_FLAG;\ + break; void ResetDebugVariablesIterator(void* varp, __IEC_types_enum vartype) { @@ -197,7 +203,7 @@ int GetDebugData(unsigned long *tick, unsigned long *size, void **buffer){ int res = WaitDebugData(tick); *size = buffer_cursor - debug_buffer; - *buffer = NULL; + *buffer = debug_buffer; return res; } diff -r e01434cfcb9d -r dfc6164e4022 tests/python/beremiz.xml --- a/tests/python/beremiz.xml Sun Dec 06 15:58:33 2009 +0100 +++ b/tests/python/beremiz.xml Sun Dec 06 17:45:36 2009 +0100 @@ -1,4 +1,6 @@ - - + + + + diff -r e01434cfcb9d -r dfc6164e4022 tests/python/plc.xml --- a/tests/python/plc.xml Sun Dec 06 15:58:33 2009 +0100 +++ b/tests/python/plc.xml Sun Dec 06 17:45:36 2009 +0100 @@ -8,7 +8,7 @@ productVersion="0.0" creationDateTime="2008-12-14T16:21:19"/> + modificationDateTime="2009-12-06T12:55:54">