Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: pucher от 09-08-2018, 20:53:24

Название: Проблема с отладкой winforms
Отправлено: pucher от 09-08-2018, 20:53:24
Здравствуйте. При разработке .dll приложения под автокад, его отладка проходит без проблем, точки останова срабатывают. Как только в .dll добавляю окно winforms, отладка перестает работать, выскакивает ошибка "The application is in break mode". Включение/отключение “Use Managed Compatibility Mode” и “Enable native code debugging” не помогает. Visual Studio 2017 Community и AutoCAD 2013. Как быть, что делать? Спасибо.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 09-08-2018, 21:34:37
“Enable native code debugging”
Это однозначно убрать. Убери Enable Edit and Continue. Установи Target .NET Framework в 4.0
Если не поможет - забудь про VS 2017 для AutoCAD 2013 и используй ту, которая рекомендована Autodesk, а именно VS 2010 SP1 или в крайнем случае VS 2012.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 09-08-2018, 21:44:10
Еще можешь попробовать:
Debug -> Windows -> Exception Settings -> Managed Debugging Assistants и снять флажок у LoaderLock
Название: Re: Проблема с отладкой winforms
Отправлено: pucher от 10-08-2018, 23:10:50
Это однозначно убрать. Убери Enable Edit and Continue. Установи Target .NET Framework в 4.0
Если не поможет - забудь про VS 2017 для AutoCAD 2013 и используй ту, которая рекомендована Autodesk, а именно VS 2010 SP1 или в крайнем случае VS 2012.
Еще можешь попробовать:
Debug -> Windows -> Exception Settings -> Managed Debugging Assistants и снять флажок у LoaderLock

Ничего из предложенного не помогло. В VS 2010 SP1 стала появляться ошибка:
(https://s15.postimg.cc/oead0vifb/image.png) (https://postimg.cc/image/oead0vifb/)
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 10-08-2018, 23:12:18
В VS 2010 SP1 стала появляться ошибка:
Это нормально если ты вышел за пределы своего кода.
Название: Re: Проблема с отладкой winforms
Отправлено: pucher от 10-08-2018, 23:25:37
Это нормально если ты вышел за пределы своего кода.
Не понял, что это значит.

Я лишь создаю простую форму, listbox которой заполняю данными
Код - C# [Выбрать]
  1.         public FormListElements(List<string> namesOfElements)
  2.         {
  3.             InitializeComponent();
  4.             foreach (string name in namesOfElements)
  5.             {
  6.                 this.listBox2.Items.Add(name);
  7.             }
  8.         }
Вот этот процесс я бы хотел иметь возможность отлаживать.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 10-08-2018, 23:28:01
Если ты ставишь breakpoint на строку:
Код - C# [Выбрать]
  1. InitializeComponent();
то ты попадаешь на неё при отладке?
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 10-08-2018, 23:29:46
Цитата: Александр Ривилис от 10-08-2018, 23:12:18

    Это нормально если ты вышел за пределы своего кода.

Не понял, что это значит.
В данном примере если ты выйдешь за пределы функции, которая вызывается не из твоего кода, то это будет нормально - ты попадаешь в чужой код, для которого нет исходного текста.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 10-08-2018, 23:50:17
Как только в .dll добавляю окно winforms, отладка перестает работать
Кстати, а как ты добавляешь это окно? Лучше всего если ты выложишь zip-архив с примером проекта. Тогда легче будет помочь.
Название: Re: Проблема с отладкой winforms
Отправлено: pucher от 11-08-2018, 00:26:55
Как только в .dll добавляю окно winforms, отладка перестает работать
Кстати, а как ты добавляешь это окно? Лучше всего если ты выложишь zip-архив с примером проекта. Тогда легче будет помочь.

Что-то вообще перестали точки останова срабатывать: "breakpoint will not currently be hit. specified module could not be found". Архив с проектом прилагаю.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 11-08-2018, 00:28:28
Что-то вообще перестали точки останова срабатывать: "breakpoint will not currently be hit. specified module could not be found". Архив с проектом прилагаю.
Может ты загружаешь не ту dll?
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 11-08-2018, 00:48:11
Удалил каталоги bin и obj. Благо у меня есть и AutoCAD 2013 и VS 2010 SP1. Откомпилировал. Запустил отладку.
Вот результат:

Название: Re: Проблема с отладкой winforms
Отправлено: pucher от 11-08-2018, 09:49:32
Может ты загружаешь не ту dll?
Да, это я тогда что-то с dll напутал.
Удалил каталоги bin и obj. Благо у меня есть и AutoCAD 2013 и VS 2010 SP1. Откомпилировал. Запустил отладку.
У меня работает аналогично, но смысл в том, что в vs2017 точки останова перестают работать, если их начать размещать в обработчике события нажатия кнопки главной формы. Ошибка The application is in break mode. Размещение точек останова до обработчика кнопки работает. В vs2010 sp1 аналогично, за исключением названия ошибки - No symbols are loaded...
Последний архив проекта приложил.
Да, старт программы в классе ClassMain, [CommandMethod("ddd")].

Заглянул в Output, там много ошибок. Чего-то там не может найти.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 11-08-2018, 12:37:31
Ох склероз-склероз! Как давно я с этим не сталкивался. Читай: http://adn-cis.org/tochki-ostanova-v-polzovatelskoj-forme-ne-obrabatyivayutsya-pri-otladke.html
Вывод: NEXTFIBERWORLD в 0 и перезапустить AutoCAD. Возможны артефакты в работе с AutoCAD.
Название: Re: Проблема с отладкой winforms
Отправлено: pucher от 11-08-2018, 14:11:47
Да, установка NEXTFIBERWORLD в 0 помогла и в VS2017.

Как давно я с этим не сталкивался
Каким образом вы тогда взаимодействуете с пользовательским вводом, если не через формы? Через командную строку? При большом количестве настроек это ведь не удобно.
Название: Re: Проблема с отладкой winforms
Отправлено: Александр Ривилис от 11-08-2018, 16:19:11
Каким образом вы тогда взаимодействуете с пользовательским вводом, если не через формы? Через командную строку? При большом количестве настроек это ведь не удобно.
1. Эта проблема связана только с AutoCAD до 2015 версии. Т.е. последние четыре версии AutoCAD лишены этой проблемы.
2. Я вообще не слишком много пишу на .NET - в основном на ObjectARX (native С++)