13.02.2010, 01:50 | #1 |
Участник
|
отладочная печать через вспомогательную таблицу
хочу поделиться идеей, подсказанной мне добрым феем wildguess
я отлаживал класс (EventActionEmail), который вызывался фреймворком пакетной обработки (batch processing) и был невиден в отладчике (4-я версия) - по точкам останова ничего не происходило. поэтому была добавлена таблица следующей структуры (см. рис. 1) и статическим методом addInfo(), X++: // store the debug info and the name of calling method static void addInfo(str _s, str _method) { _SisDebugInfo sisDebugInfo; ; ttsBegin; sisDebugInfo.Info = _s; sisDebugInfo.Method = _method; sisDebugInfo.insert(); ttsCommit; // unfortunately, it does not work in case of any exception :-( } X++: for (i = 1 ; i <= conLen(users) ; i++) { // add debug info //--> _SisDebugInfo::addInfo(strfmt("userId = %1", conPeek(users, i)), funcname()); //<-- userInfo = SysUserInfo::find(conPeek(users, i)); select firstonly alertInboxLocal where alertInboxLocal.GroupEventInboxId == alertInbox.GroupEventInboxId && alertInboxLocal.UserId == userInfo.Id; alertInbox = alertInboxLocal; alertInboxLocal = null; //; это, конечно, не полноценный дебаггинг, но кое-что при таком подходе можно увидеть (см. рис. 2). к сожалению, в случае исключительной ситуации записи в эту таблицу не происходит.
__________________
Felix nihil admirari Последний раз редактировалось wojzeh; 27.10.2019 в 19:35. |
|
|
|