Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) 1С++ 2.5 (число прочтений - 14268 )
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
1С++ 2.5
11. Сентября 2007 :: 13:12
Печать  
Решил выделить обсуждение здесь: http://itland.ru/forum//index.php?showtopic=20915&pid=103412&st=0 в отдельную тему.

Цитата:
Нужен живой пример, сам понимаешь smile.gif
Сможешь какой-то тест предоставить или описать ситуацию, в которой баг повторяется ?

Хитрый... Легкой жизни хочешь Улыбка Нет теста, в котором ситуация повторяется. Просто система работает нестабильно. Добавляешь в обработку пару фрагментов: начинает вылетать по AV. Меняешь иногда местами пару строк - начинает работать. Работающий вроде вариант ВДРУГ перестает работать и начинает вылетать. Как было: утром запустил (ничего не меняя) вечерний вариант - постоянные AV.

Описываю ситуацию. Нужно было перенести данные из старой Комплексной в ЗиК (сотрудники, расчеты, кадровые данные и т.п.) Обе базы - ДБФ. Как любитель ДБФ решил было пойти старым путем: выгрузка в ДБФ/загрузка из ДБФ. Но тут вспомнил про новый функционал в 2.5, позволяющий делать запросы к посторонней базе. (ПрисоединитьМД, все дела...) Тогда мне, фактически, надо писать только одну загрузку, что дает существенную экономию кода. Начал писать.

Первые грабли: ругается на что-то там про многошаговую операцию OLE DB. Глянул сырцы: не выполняется проверка на наличие конечного слеша в пути. Добавил слеш к пути - заработало.

Вторые грабли. Нестабильные вылеты. Вылетает всегда на ВыполнитьИнструкцию. Иногда шаманские пляски помогают исправить ситуацию, иногда нет. Для выполнения запросов используется оберточный класс "ПрямойЗапрос".

Цитата:
ИМХО "рекомендованный стабильный релиз" 2.5.0.1 отличается в худшую сторону от ночной сборки 2.5, т.е. использовать нужно именно ночную сборку smile.gif

Значит информация на сайте о рекомендованном стабильном релизе 2.5 является ложной. А ночные сборки на базы в полсотни юзверей пусть ставят мазохисты с альтернативной ориентацией - начальство им обеспечит все 33 удовольствия. Получается, стабильного релиза 2.5 нет.

Цитата:
Да, в работе с исключениями в 2.5 еще есть баги, тут не буду спорить, но это не так страшно (ИМХО).
В 203 sedmin недавно исправлял работу с исключениями.
Я планировал также перенести его правки в 2.5, т.к. уже есть примеры тестов по исключениям, которые проходят в 203, но не в 2.5

Сможешь подсказать -
1) какие лики ты нашел ?
2) каким инструментом для проверки ликов пользуешься? что посоветуешь? давно хочу подобным инструментов пользоваться smile.gif Желательно, уже залеченным smile.gif

Под исключениями я имел в виду вызовы CBLModule::RaiseExtRuntimeError. Эта функция генерит стандартное C++ исключение (что хорошо видно в отладчике). Со всеми вытекающими последствиями. Т.е. если перед вызовом были выделены ресурсы, потом вызван RuntimeError, а потом добавлена очистка ресурсов, то очистка никогда не выполнится. Из тех исходников, что у меня есть:

1. CBinaryData::CallAsProc - case procWriteString:

Происходит выделение памяти, потом RaiseRuntimeError, потом delete.

2. COLEDBCommand:ЯзыкarseQuery. Наблюдаю в коде очень заботливый комментарий
Код
Выбрать все
	try
	{
		m_MetaNameParser.Parse();
	}
	catch (CMNPException* MNPException)
	{
		strErr = szMNPErrorPrefix + MNPException->GetErrorDescr();
		RuntimeError(strErr);

		MNPException->Delete(); // TODO этот код никогда не работает
	};
 


ИМХО, чтобы его написать, времени потребовалось существенно больше, чем просто поменять местами две строки  Смех

Так что, инструмент для отлова таких ликов - обычные глаза.

Если говорить вообще о ликах, то лучший инструмент - это встроенная противоликовая система, когда все вызовы new подменяются их отладочными вариантами, которые запоминают все выделения памяти. Аналогично с delete - удаляет из списка выделенных блоков удаляемые блоки. Пример такой системы есть, например, на RSDN.

Кроме памяти есть еще другие ресурсы (GDI, файлы и т.д.) Для этого уже можно использовать инструменты вроде BoundsChecker или Rational PurifyPlus.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #1 - 11. Сентября 2007 :: 13:20
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 13:12:
Решил выделить обсуждение в отдельную тему.

+1
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #2 - 11. Сентября 2007 :: 13:29
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 13:12:
Цитата:
ИМХО "рекомендованный стабильный релиз" 2.5.0.1 отличается в худшую сторону от ночной сборки 2.5, т.е. использовать нужно именно ночную сборку smile.gif

Значит информация на сайте о рекомендованном стабильном релизе 2.5 является ложной. А ночные сборки на базы в полсотни юзверей пусть ставят мазохисты с альтернативной ориентацией - начальство им обеспечит все 33 удовольствия. Получается, стабильного релиза 2.5 нет.

Не согласен. Отличия ночных сборок 2.5 от 2.5.0.1 как раз в исправлении различных ошибок + некоторый новый функционал.

Цитата:
1. CBinaryData::CallAsProc - case procWriteString:

Происходит выделение памяти, потом RaiseRuntimeError, потом delete.

Не видел. Исправлю.

Цитата:
2. COLEDBCommand:ЯзыкarseQuery. Наблюдаю в коде очень заботливый комментарий
Код
Выбрать все
	try
	{
		m_MetaNameParser.Parse();
	}
	catch (CMNPException* MNPException)
	{
		strErr = szMNPErrorPrefix + MNPException->GetErrorDescr();
		RuntimeError(strErr);

		MNPException->Delete(); // TODO этот код никогда не работает
	};
 


ИМХО, чтобы его написать, времени потребовалось существенно больше, чем просто поменять местами две строки  Смех

Это мой коммент Улыбка
Я его для автора кода оставил, потому что на тот момент он еще не закончил коммиты в репозитарий.
А в итоге и он не посмотрел, и я забыл Печаль
Исправлю.

Если еще что увидишь, пожалуйста, оповещай, ок?

По РСДН и new можешь прямой линк дать на статью/ветку ?

Ты писал, что у тебя есть какой-то свой антиликовый инструментарий ? можешь описать/поделиться ? Улыбка

ЗЫ надеюсь, своими просьбами еще не заколебал - это все от бедности и удаленности от цивилизации Улыбка
  

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



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #3 - 11. Сентября 2007 :: 13:53
Печать  
artbear писал(а) 11. Сентября 2007 :: 13:29:
Не согласен. Отличия ночных сборок 2.5 от 2.5.0.1 как раз в исправлении различных ошибок + некоторый новый функционал.

Похоже, ты считаешь ночную сборку чем-то вроде хотфикса. Но это не так Улыбка

artbear писал(а) 11. Сентября 2007 :: 13:29:
Если еще что увидишь, пожалуйста, оповещай, ок?

Угу

artbear писал(а) 11. Сентября 2007 :: 13:29:
По РСДН и new можешь прямой линк дать на статью/ветку ?

http://rsdn.ru/?article/vcpp/ascLibSearchLeak.xml

artbear писал(а) 11. Сентября 2007 :: 13:29:
Ты писал, что у тебя есть какой-то свой антиликовый инструментарий ? можешь описать/поделиться ? Улыбка

Ну, у меня что-то вроде того, что на РСДН, но более кривое Улыбка
Здесь: http://yoksel.cvs.sourceforge.net/yoksel/SpreadSheet/Tests/DbgMemoryBlock.cpp?re...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #4 - 11. Сентября 2007 :: 14:33
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 13:12:
Хитрый... Легкой жизни хочешь Улыбка Нет теста, в котором ситуация повторяется. Просто система работает нестабильно. Добавляешь в обработку пару фрагментов: начинает вылетать по AV. Меняешь иногда местами пару строк - начинает работать. Работающий вроде вариант ВДРУГ перестает работать и начинает вылетать. Как было: утром запустил (ничего не меняя) вечерний вариант - постоянные AV.

ИМХО нужно сразу же бить во все колокола, описать ситуацию на нашем форуме, чтобы можно было оперативно разобраться.

Кстати, я прямыми запросами практически не пользуюсь Улыбка
Я лично и мои пользователи вылетов давненько не встречали Улыбка
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #5 - 11. Сентября 2007 :: 14:34
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 13:53:
artbear писал(а) 11. Сентября 2007 :: 13:29:
Не согласен. Отличия ночных сборок 2.5 от 2.5.0.1 как раз в исправлении различных ошибок + некоторый новый функционал.

Похоже, ты считаешь ночную сборку чем-то вроде хотфикса. Но это не так Улыбка

Я-то как раз не считаю ночную сборку хотфиксом Улыбка
Я считаю ее полноценной сборкой, которую практически всегда можно применять Улыбка

ЗЫ аська появилась? или так и не завел?
  

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



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #6 - 11. Сентября 2007 :: 14:35
Печать  
artbear писал(а) 11. Сентября 2007 :: 14:33:
ИМХО нужно сразу же бить во все колокола, описать ситуацию на нашем форуме, чтобы можно было оперативно разобраться.

Я бы с радостью, но был жесткий дедлайн, а потом муторные две недели внедрения Печаль

artbear писал(а) 11. Сентября 2007 :: 14:33:
Я лично и мои пользователи вылетов давненько не встречали Улыбка

"Видишь суслика? А он есть" Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #7 - 11. Сентября 2007 :: 14:37
Печать  
Не так уж давно spock провел довольно сильный рефакторинг ОлеДБ в 203 и 25 одновременно, было исправлено много ошибок + новые фичи (работа с параметрами, например).
Вроде бы сейчас ОлеДБ в 203 и 25 полностью совпадают.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #8 - 11. Сентября 2007 :: 14:39
Печать  
artbear писал(а) 11. Сентября 2007 :: 14:37:
Не так уж давно spock провел довольно сильный рефакторинг ОлеДБ в 203 и 25 одновременно, было исправлено много ошибок + новые фичи (работа с параметрами, например).
Вроде бы сейчас ОлеДБ в 203 и 25 полностью совпадают.

Указанный рефакторинг был сделан с помощью спец.тестов (моих и Кирилла) в моей конфе тестирования 1С++, что позволило исключить множество ошибок при разработке Улыбка

ЗЫ вот и Кирилл появился Улыбка
  

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



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #9 - 11. Сентября 2007 :: 14:40
Печать  
artbear писал(а) 11. Сентября 2007 :: 14:34:
Я-то как раз не считаю ночную сборку хотфиксом Улыбка
Я считаю ее полноценной сборкой, которую практически всегда можно применять Улыбка

Значит, в 1С++ нет ночных сборок, на которых демонстрируется примерная реализация новых возможностей. Улыбка

artbear писал(а) 11. Сентября 2007 :: 14:34:
ЗЫ аська появилась? или так и не завел?

Дык, вроде она у тебя есть?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #10 - 11. Сентября 2007 :: 14:44
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 14:40:
artbear писал(а) 11. Сентября 2007 :: 14:34:
ЗЫ аська появилась? или так и не завел?

Дык, вроде она у тебя есть?

Какой-то глюк у меня с аськой - нету тебя в списке.
Напиши что-нибудь.
265666057
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #11 - 11. Сентября 2007 :: 14:45
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 14:40:
artbear писал(а) 11. Сентября 2007 :: 14:34:
Я-то как раз не считаю ночную сборку хотфиксом Улыбка
Я считаю ее полноценной сборкой, которую практически всегда можно применять Улыбка

Значит, в 1С++ нет ночных сборок, на которых демонстрируется примерная реализация новых возможностей. Улыбка

Вот эту фразу вообще не понял Печаль
  

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



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #12 - 11. Сентября 2007 :: 14:47
Печать  
artbear писал(а) 11. Сентября 2007 :: 14:37:
Вроде бы сейчас ОлеДБ в 203 и 25 полностью совпадают.

Должны совпадать полностью.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #13 - 11. Сентября 2007 :: 14:49
Печать  
Uzhast писал(а) 11. Сентября 2007 :: 13:12:
Глянул сырцы: не выполняется проверка на наличие конечного слеша в пути.

Уточни, где ты это нашел.
  
Наверх
ICQ  
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: 1С++ 2.5
Ответ #14 - 11. Сентября 2007 :: 14:50
Печать  
artbear писал(а) 11. Сентября 2007 :: 14:45:
Вот эту фразу вообще не понял Печаль

Ночная сборка - сборка для взаимодействия между разработичками и заинтересованными пользователями. Там обычно примерная реализация новых возможностей, которая может меняться в релизе.

А т.к. ты считаешь ночную сборку полностью готовой сборкой, получается, что такой сборки, где обкатывается новый функционал, и нет Улыбка
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать