Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) 1C++ виснет в режиме отладки (число прочтений - 6588 )
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
1C++ виснет в режиме отладки
15. Ноября 2006 :: 08:26
Печать  
Есть иерархия классов Т_Базовый -> Т_Наследник -> Т_Рабочий
В режиме отладки в отладчик "виснет" в процедуре "ПриОткрытии" класса Т_Наследник или Т_Рабочий.
Я из этих классов все данные и процедуры удалил, но ошибка все равно остается.
Сейчас текст классов такой:

Т_Базовый
[code]

//================================================================
// This
//              

Функция GetThis (пКонтекст)
     Возврат пКонтекст;
КонецФункции


Функция This ()
     Возврат GetThis(Контекст);
КонецФункции


//================================================================
// Конструктор/Деструктор
//              
Процедура Конструктор()
     Сообщить("Т_Базовый::Конструктор");
КонецПроцедуры      

Процедура Деструктор()                        
     Сообщить("Т_Базовый::Деструктор");
КонецПроцедуры      

//===============================================================
//
//
Процедура ПриОткрытии ()
     Форма.Параметр._ПриОткрытии();
КонецПроцедуры
[/code]

Т_Наследник:
[code]
Перем м_Данные;


//================================================================
// This
//              

Функция GetThis (пКонтекст)
     Возврат пКонтекст;
КонецФункции


Функция This ()
     Возврат GetThis(Контекст);
КонецФункции


//================================================================
// Конструктор/Деструктор
//              

Процедура Конструктор()
     Сообщить("Т_Наследник::Конструктор");
     м_Данные = 5;
КонецПроцедуры      


Процедура Деструктор()                        
     Сообщить("Т_Наследник::Деструктор");
КонецПроцедуры      


//===============================================================
//
//

Процедура ПриОткрытии ()
     Форма.Параметр._ПриОткрытии();
КонецПроцедуры

[/code]

Т_Рабочий
[code]

//================================================================
// This
//              

Функция GetThis (пКонтекст)
     Возврат пКонтекст;
КонецФункции


Функция This ()
     Возврат GetThis(Контекст);
КонецФункции


//================================================================
// Конструктор/Деструктор
//              

Процедура Конструктор()        
     Сообщить("Т_Рабочий::Конструктор");
КонецПроцедуры      // Конструктор                              


//===============================================================
//
//

Процедура ПриОткрытии ()
     Форма.Параметр._ПриОткрытии();
КонецПроцедуры

[/code]


DefCls.prm
[code]
//#include "1cpp_modules\Т_Базовый.prm"
//#include "1cpp_modules\Т_Наследник.prm"
//#include "1cpp_modules\Т_Рабочий.prm"
[/code]


Описания классов :
[code]
Класс Т_Базовый = Т_Базовый.ert
{
}

Класс Т_Наследник = Т_Наследник.ert : Т_Базовый
{
}

Класс Т_Рабочий = Т_Рабочий.ert : Т_Наследник
{
}

[/code]


Версия 1С 7.70.023 для SQL, 1С++ 2.0.3.1 (пробовал на 2.0.2.2 - тоже самое)
Что делать?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C++ виснет в режиме отладки
Ответ #1 - 15. Ноября 2006 :: 09:01
Печать  
В ПриОткрытии
виснет до Форма.Параметр._ПриОткрытии();
или после
или в самом методе?
Поставь там Предупреждение, увидишь
ЗЫ попробуй в 2.5 - там решены проблемы с отладкой и упрощены, вообще ПриОткрытии не нужно Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #2 - 15. Ноября 2006 :: 09:20
Печать  
виснет на строке:

Форма.Параметр._ПриОткрытии();


А 2.5 пока страшновато на рабочую базу ставить :) Пока он не станет "рекомендованным" :)
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C++ виснет в режиме отладки
Ответ #3 - 15. Ноября 2006 :: 11:25
Печать  
Плиз, сделай тестовую конфу, в которой четко видна данная ошибка.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #4 - 15. Ноября 2006 :: 14:06
Печать  
На чистой тестовой, в которой есть только эти три класса, и в процедуре "ПриНачалеРаботыСистемы" создаются только три объекта - все ОК.
Завтра буду на рабочей что-нибудь комментировать, чтобы локализовать ошибку
Но мне кажется косяк где-то в самой 1срр.dll раз она не может правильно отработать
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C++ виснет в режиме отладки
Ответ #5 - 15. Ноября 2006 :: 14:16
Печать  
Вряд ли, ищи что-нибудь у себя.
Кстати, прочитай про параметр _NOW_PREPARE_CLASS
и попробуй код
//#if _NOW_PREPARE_CLASS
Процедура ПриОткрытии()
     Форма.Параметр._ПриОткрытии();
КонецПроцедуры
//#endif
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #6 - 16. Ноября 2006 :: 05:56
Печать  
Цитата:
Кстати, прочитай про параметр _NOW_PREPARE_CLASS


А где можно почитать?
У меня есть *.CHM-помощь для версии 2.0.22, и для версии 2.0.3.1. Там про это только сказано что есть такой параметр и что он теперь работает, а что он делает нету
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #7 - 17. Ноября 2006 :: 08:36
Печать  
1) Так все-таки где взять описание для _NOW_PREPARE_CLASS ?

2) После всех тестов такие результаты. На тестовой конфигурации не виснет, но иногда выскакивает сообщение "Не удалось открыть форму класса: Т_Базовый". На рабочей после этого сообщения отладчик виснет, предприятие продолжает работать. Но на рабочей конфигурации есть справочники, обработки и т.д., может быть их наличие приводит к зависанию. Могу выслать что нужно, куда?

3) Просьба к разработчикам добавить какой-нибудь текстовый протокол работы 1с++, чтобы вам было проще видеть где возникают ошибки

4) Что мне дальше делать? В программе ошибка, отладить не могу, все стоит на месте уже почти неделю Печаль
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C++ виснет в режиме отладки
Ответ #8 - 17. Ноября 2006 :: 08:50
Печать  
1) есть als-файл для 1С++, там есть описание данного параметра.
Возьми на первой странице сайта.
3) для тестирования 1С++ давно существует конфигурация тестирования 1С++, в ней уже 600 тестов.
Протокол тестирования выкладывать готовы.
Пока мешают некие технические сложности Улыбка
Федор, это к тебе - мы все ждем Печаль

2,4) Прекрасно можно обойтись без отладки!
Я лично отладкой уже несколько лет не пользуюсь Улыбка
Тестовые/отладочные сообщения рулят (Сообщить, Предупреждение).
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #9 - 17. Ноября 2006 :: 09:25
Печать  
1) нету там описания, проверил еще раз Улыбка
2,4) можно, но по времени это занимает дольше. Ну что ж придется пока так делать.

Буду очень благодарен если все-таки найдется описание
  
Наверх
ICQ  
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1C++ виснет в режиме отладки
Ответ #10 - 17. Ноября 2006 :: 11:19
Печать  
es3000 писал(а) 17. Ноября 2006 :: 08:36:
1) Так все-таки где взять описание для _NOW_PREPARE_CLASS ?

http://www.1cpp.ru/docum/html/1cpp.html#history
Версия 1.7.2.3
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #11 - 17. Ноября 2006 :: 13:18
Печать  
Что там написано я уже видел:

Цитата:
Исправлено: В режиме отладки классов не работала
           директива препроцессора _NOW_PREPARE_CLASS для классов,
           которые одновременно являются и классом, и внешней обработкой.


- Добавлена возможность препроцессора: в момент загрузки модулей из внешних отчетов как модуля класса,
  автоматически определяется символ препроцессора: _NOW_PREPARE_CLASS
  (аналогично строке кода //#define _NOW_PREPARE_CLASS)
  и отключался после того, как класс уже готов.
  (аналогично строке кода //#undef _NOW_PREPARE_CLASS)


А что это значит? Зачем это нужно? Что это дает? Как использовать?
  
Наверх
ICQ  
IP записан
 
ev-kov
God Member
*****
Отсутствует



Сообщений: 694
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: 1C++ виснет в режиме отладки
Ответ #12 - 11. Сентября 2007 :: 05:56
Печать  
  

Информация - то, что снижает неопределенность в какой-либо области и очень важно не ошибиться областью в наш информационный век!
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: 1C++ виснет в режиме отладки
Ответ #13 - 11. Сентября 2007 :: 07:08
Печать  
[quote author=es3000 link=1163579176/0#2 date=1163582444]виснет на строке:
Форма.Параметр._ПриОткрытии();
А 2.5 пока страшновато на рабочую базу ставить :) Пока он не станет "рекомендованным" :)[/quote]

Цитата с главной страницы:
[quote]Рекомендованный стабильный релиз с раздельной загрузкой FormEx: 2.5.0.1
Бинарники
Исходники с документацией

Рекомендованный стабильный релиз c включенным FormEx: 2.0.3.3
Бинарники
Исходники с документацией[/quote]

Бери любой из них. В обоих [b]ПриОткрытии()[/b] не нужна. И [b]_Приоткрытии()[/b] тоже внутри пустая.

Бери и не грузи людей.
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: 1C++ виснет в режиме отладки
Ответ #14 - 11. Сентября 2007 :: 08:59
Печать  
Как-никак почти год прошел Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать