Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Не идет отладка классов 1С++ (число прочтений - 8749 )
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Не идет отладка классов 1С++
Ответ #15 - 10. Декабря 2009 :: 15:17
Печать  
kms писал(а) 10. Декабря 2009 :: 12:16:
artbear
Ты же, наверное, должен помнить?

Должен, но не помню Улыбка (с) фильма
Пока со временем проблемы, но позже постараюсь найти ответ.
  

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С++
Ответ #16 - 10. Декабря 2009 :: 15:41
Печать  
kms писал(а) 10. Декабря 2009 :: 12:16:
artbear

Кстати, а ты мог бы четко сформулировать, чем отличаются механизмы отладки
  • В родном 2.0.3.2
  • В моем исходном 2.0.3.2
  • В результате в 3.0.1.23
    Особенно интересны отличия последних двух вариантов.
    Код я могу посмотреть, хотелось бы услышать принцип.

    Второй вопрос: чем отличаются механизмы отладки
  • В 3.0.1.23 без нажатия кнопки "Отладка"
  • В 3.0.1.23 с нажатием кнопки "Отладка"
    Ты же, наверное, должен помнить?

  • В исходниках 1С++ я вроде бы оставил комменты для пояснения проблемы, возможно, что и линк на форум там етсь Улыбка
      

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


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: Не идет отладка классов 1С++
    Ответ #17 - 10. Декабря 2009 :: 18:19
    Печать  
    fez писал(а) 10. Декабря 2009 :: 14:42:

    Не, Федор.
    это: http://www.1cpp.ru/forum/YaBB.pl?num=1206042291/95#95
    Это ценная ветка - результат весьма нетривиального исследования.

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

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: Не идет отладка классов 1С++
    Ответ #18 - 10. Декабря 2009 :: 18:27
    Печать  
    artbear писал(а) 10. Декабря 2009 :: 15:17:
    Должен, но не помню Улыбка (с) фильма

    Так я вижу, что не помнишь. Подмигивание
    А фильм хороший, скоро опять посмотрим.
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: Не идет отладка классов 1С++
    Ответ #19 - 10. Декабря 2009 :: 22:57
    Печать  
    fez, artbear

    А вообще, смотрите, в каком виде забавном виде у нас оказалась отладка в icpp.

    artbear писал(а) 10. Декабря 2009 :: 08:36:
    Нажатие кнопки Отладка все равно нужно.
    В нативном режиме, предложенном kms, были некие глюки при работе 1С++, поэтому от данного режима, насколько я помню, отказались.


    1. На самом деле, читать надо так: чтобы проходили тесты в тестовой базе icpp, наилучшим решением Артур счел простое отключение отладки для классов в TXT. Улыбка

    Таким образом, tracer.dll теперь как бы не при делах и вообще нахрен не нужен.
    Собственно, тут или отладка TXT - или наследование транзакций. (http://www.1cpp.ru/forum/YaBB.pl?num=1206042291/95#95)
    Артур выбрал наследование транзакций - т.е. выполнение иерархии модулей TXT как единого модуля.
    Отладка пала жертвой.

    2. Поскольку Артур зарезал исключительно нативную отладку классов в TXT, для классов ERT отладка возможна, однако классы ERT выполняются как набор модулей и транзакции они снизу вверх не наследуют.

    3. Поскольку решения в п.1 и п.2 различны, простой перенос класса из модуля TXT в модуль ERT изменяет его поведение в плане наследования транзакций.
    К примеру, попробуйте перенести класс ТекстовыйСлучайСДанными в ERT - тесты ООП перестанут проходить.

    4. Зачем нужна кнопка "отладка", я лично вообще х.з.

    5. В настоящий момент я против того, чтобы классы под отладкой вели себя иначе, чем классы без отладки.
    Иначе как отлаживать рабочую систему, если она при включении отладки начнет падать?

    Цитата:


    Мое резюме:
    1. Считаю паллиативные решения по запрещению отладки TXT неконструктивными
    2. Предлагаю от них отказаться
    3. Предлагаю отказаться от наследования транзакций "сверху вниз" в принципе.

    Итак, это результат исследования длиною в пару часов и моего личного представления о логике корректного построения систем.
    Предлагать сейчас что-то исправить, наверное, слишком жестоко по отношению к участникам наших посиделок.
    Особенно тем, у кого есть классы в TXT, использующие феномен наследования транзакций снизу вверх.

    Тем не менее, это можно сделать.
    Ну, или по крайней мере, оставить это поведение документированным здесь.

    P.S.
    Артур.
    Ну, теперь, по крайней мере, ты знаешь, для чего там нужна была эта строчка и что означает ее отсутствие.
    Надеюсь, я не напрасно все это писал. Улыбка

    P.P.S.
    И вот, спустя полтора года, ощущение незавершенности процесса покидает мое бренное тело.
    Оооооммммм. Улыбка
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    m-kivilev
    YaBB Newbies
    *
    Отсутствует


    1C++ rocks!

    Сообщений: 8
    Зарегистрирован: 10. Декабря 2009
    Re: Не идет отладка классов 1С++
    Ответ #20 - 11. Декабря 2009 :: 08:30
    Печать  
    Да, точно, если не включен TurboBL, то отладка не работает. Проверено на релизах 1cpp.dll 2.5.0.7, 3.0.1.23.
      
    Наверх
     
    IP записан
     
    artbear
    1c++ developer
    1c++ moderator
    Отсутствует


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

    Сообщений: 6303
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Не идет отладка классов 1С++
    Ответ #21 - 11. Декабря 2009 :: 09:35
    Печать  
    m-kivilev писал(а) 11. Декабря 2009 :: 08:30:
    Да, точно, если не включен TurboBL, то отладка не работает. Проверено на релизах 1cpp.dll 2.5.0.7, 3.0.1.23.

    Вполне может, смутно что-то вспоминается Улыбка
    ЗЫ лично я 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С++
    Ответ #22 - 11. Декабря 2009 :: 09:37
    Печать  
    kms писал(а) 10. Декабря 2009 :: 22:57:
    fez, artbear

    А вообще, смотрите, в каком виде забавном виде у нас оказалась отладка в icpp.

    artbear писал(а) 10. Декабря 2009 :: 08:36:
    Нажатие кнопки Отладка все равно нужно.
    В нативном режиме, предложенном kms, были некие глюки при работе 1С++, поэтому от данного режима, насколько я помню, отказались.


    1. На самом деле, читать надо так: чтобы проходили тесты в тестовой базе icpp, наилучшим решением Артур счел простое отключение отладки для классов в TXT. Улыбка

    Таким образом, tracer.dll теперь как бы не при делах и вообще нахрен не нужен.
    Собственно, тут или отладка TXT - или наследование транзакций. (http://www.1cpp.ru/forum/YaBB.pl?num=1206042291/95#95)
    Артур выбрал наследование транзакций - т.е. выполнение иерархии модулей TXT как единого модуля.
    Отладка пала жертвой.

    2. Поскольку Артур зарезал исключительно нативную отладку классов в TXT, для классов ERT отладка возможна, однако классы ERT выполняются как набор модулей и транзакции они снизу вверх не наследуют.

    3. Поскольку решения в п.1 и п.2 различны, простой перенос класса из модуля TXT в модуль ERT изменяет его поведение в плане наследования транзакций.
    К примеру, попробуйте перенести класс ТекстовыйСлучайСДанными в ERT - тесты ООП перестанут проходить.

    4. Зачем нужна кнопка "отладка", я лично вообще х.з.

    5. В настоящий момент я против того, чтобы классы под отладкой вели себя иначе, чем классы без отладки.
    Иначе как отлаживать рабочую систему, если она при включении отладки начнет падать?

    Цитата:


    Мое резюме:
    1. Считаю паллиативные решения по запрещению отладки TXT неконструктивными
    2. Предлагаю от них отказаться
    3. Предлагаю отказаться от наследования транзакций "сверху вниз" в принципе.

    Итак, это результат исследования длиною в пару часов и моего личного представления о логике корректного построения систем.
    Предлагать сейчас что-то исправить, наверное, слишком жестоко по отношению к участникам наших посиделок.
    Особенно тем, у кого есть классы в TXT, использующие феномен наследования транзакций снизу вверх.

    Тем не менее, это можно сделать.
    Ну, или по крайней мере, оставить это поведение документированным здесь.

    P.S.
    Артур.
    Ну, теперь, по крайней мере, ты знаешь, для чего там нужна была эта строчка и что означает ее отсутствие.
    Надеюсь, я не напрасно все это писал. Улыбка

    P.P.S.
    И вот, спустя полтора года, ощущение незавершенности процесса покидает мое бренное тело.
    Оооооммммм. Улыбка

    Интересное исследование - нужно его как-то куда-то запомнить Улыбка
      

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


    1C++ rocks!

    Сообщений: 8
    Зарегистрирован: 10. Декабря 2009
    Re: Не идет отладка классов 1С++
    Ответ #23 - 11. Декабря 2009 :: 12:28
    Печать  
    Самое интересное, что "TurboBL" почему-то не был включен по умолчанию, как это описано в документации, пришлось включать его программно.
      
    Наверх
     
    IP записан
     
    fez
    Forum Administrator
    1c++ power user
    Отсутствует


    I wanted to cry, but the
    tears wouldn't come

    Сообщений: 2712
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Не идет отладка классов 1С++
    Ответ #24 - 11. Декабря 2009 :: 14:42
    Печать  
    kms писал(а) 10. Декабря 2009 :: 22:57:
    Мое резюме:
    1. Считаю паллиативные решения по запрещению отладки TXT неконструктивными
    2. Предлагаю от них отказаться
    3. Предлагаю отказаться от наследования транзакций "сверху вниз" в принципе.

    В принципе, разумно. И что самое главное - довольно своевременно Улыбка Улыбка Улыбка

    В идеале бы конечно же собирать два варианта компоненты (там, я так понимаю, отличие в одной строчке), ну или как минимум назвать ее 3.1, но кто будет слушать такого старого консерватора, как я? В проекте icpp всегда довольно вольно обращались с обратной совместимостью, и этот пример еще не из худших Улыбка
      
    Наверх
    www  
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: Не идет отладка классов 1С++
    Ответ #25 - 11. Декабря 2009 :: 15:48
    Печать  
    artbear писал(а) 11. Декабря 2009 :: 09:37:
    Интересное исследование - нужно его как-то куда-то запомнить Улыбка

    Ага. Улыбка

    artbear

    m-kivilev писал(а) 11. Декабря 2009 :: 12:28:
    Самое интересное, что "TurboBL" почему-то не был включен по умолчанию, как это описано в документации, пришлось включать его программно.

    (вкрадчиво, с хитрым прищуром) Артур, а ты с этим не хотел бы разобраться? Подмигивание (молча) В конце концов? Улыбка

    fez

    fez писал(а) 11. Декабря 2009 :: 14:42:
    но кто будет слушать такого старого консерватора, как я?

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

    Два варианта - тяжеловато. Можно ведь просто параметризировать.
    Вот Артур если разберется с управлением настройкой ТурбоБЛ - там, глядишь, по аналогии и управление отладкой можно сделать.
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    fez
    Forum Administrator
    1c++ power user
    Отсутствует


    I wanted to cry, but the
    tears wouldn't come

    Сообщений: 2712
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Не идет отладка классов 1С++
    Ответ #26 - 11. Декабря 2009 :: 16:17
    Печать  
    Миш, а Миш... А как ты тогда объяснишь работоспособность вот такой фигни?

    Код
    Выбрать все
    Процедура Выполнить()
    	глНачатьТранзакцию();
    	глЗафиксироватьТранзакцию();
    КонецПроцедуры
     
    
    


    Где упомянутые процедуры глобального модуля просты как я не знаю:

    Код
    Выбрать все
    Процедура глНачатьТранзакцию() Экспорт
    	НачатьТранзакцию();
    КонецПроцедуры
    
    Процедура глЗафиксироватьТранзакцию() Экспорт
    	ЗафиксироватьТранзакцию();
    КонецПроцедуры
     
    
    
      
    Наверх
    www  
    IP записан
     
    fez
    Forum Administrator
    1c++ power user
    Отсутствует


    I wanted to cry, but the
    tears wouldn't come

    Сообщений: 2712
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Не идет отладка классов 1С++
    Ответ #27 - 11. Декабря 2009 :: 16:20
    Печать  
    Собственно, классы - это ведь не просто стек модулей, да? Их же нельзя заменить цепочкой обработок с кодом в ПриОткрытии?  Озадачен Нерешительный
      
    Наверх
    www  
    IP записан
     
    artbear
    1c++ developer
    1c++ moderator
    Отсутствует


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

    Сообщений: 6303
    Местоположение: Москва
    Зарегистрирован: 19. Мая 2006
    Пол: Мужской
    Re: Не идет отладка классов 1С++
    Ответ #28 - 12. Декабря 2009 :: 12:07
    Печать  
    kms писал(а) 11. Декабря 2009 :: 15:48:
    artbear

    m-kivilev писал(а) 11. Декабря 2009 :: 12:28:
    Самое интересное, что "TurboBL" почему-то не был включен по умолчанию, как это описано в документации, пришлось включать его программно.

    (вкрадчиво, с хитрым прищуром) Артур, а ты с этим не хотел бы разобраться? Подмигивание (молча) В конце концов? Улыбка

    Вот Артур если разберется с управлением настройкой ТурбоБЛ - там, глядишь, по аналогии и управление отладкой можно сделать.

    Да, с настройками и реестром какая-то хрень творится Улыбка уже года 2 как Улыбка
    Просто ТурбоБЛ самая часто используемая настройка, чаще всего и выявляется
      

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


    я хочу, чтоб сюда проложили
    дорогу оттуда...

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: Не идет отладка классов 1С++
    Ответ #29 - 13. Декабря 2009 :: 00:09
    Печать  
    fez писал(а) 11. Декабря 2009 :: 16:17:
    Миш, а Миш... А как ты тогда объяснишь работоспособность вот такой фигни?

    Федор, дак ГМ не в счет.
    Но с переходом через границы контекста такой номер не проходит.
    Помнишь, я делал простенькую иллюстрацию, что 1С сама на такое использование не рассчитана: http://www.1cpp.ru/forum/YaBB.pl?num=1206042291/105#105

    В свое время мы с Димой Трапезниковым как-то одновременно пришли к выводу, что классы типа 1С++ можно было изначально построить на уже готовом механизме групповых контекстов.
    Х.з., может быть, тогда удалось бы по другому работать с наследованием транзакцией.
    Но сейчас это скорее история, предположение академического характера.
      

    De quelle planète es-tu?
    Наверх
     
    IP записан
     
    Переключение на Главную Страницу Страницы: 1 [2] 3 
    ОтправитьПечать