Отладка модуля AutoCAD - PullRequest
       2

Отладка модуля AutoCAD

3 голосов
/ 15 декабря 2011

Я работаю над проектом, который является модулем dll для AutoCAD, который добавляет некоторые новые функции (например, меню, объекты и т. Д.) В среду.Естественно, в меню есть некоторые ошибки, объекты модуля.

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

Я использую C ++ в VS2010.Исходный код содержит около 500 000 строк, поэтому для его ознакомления требуется некоторое время.

Ответы [ 2 ]

5 голосов
/ 15 декабря 2011

Вот метод, который я использую для C # / .NET.Я не могу гарантировать, что это также будет работать для DLL C ++, но это стоит попробовать.

Сначала, в файле конфигурации Visual Studio для вашего решения, добавьте следующие строки в конфигурацию Debug | Any CPU:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  <!-- there should be other options already in here! -->
  <StartAction>Program</StartAction>
  <StartProgram>c:\program files\autocad2008\acad.exe</StartProgram>
</PropertyGroup>

Я использую AutoCAD 2008 - подставьте путь к вашему исполняемому файлу.В Visual Studio вы должны иметь возможность установить это с экрана конфигурации, но в выпусках Express вам необходимо внести это изменение вручную в блокноте или аналогичном редакторе.

Далее, убедитесь, что в любой предоставляемой AutoCAD dll, что выссылка в вашем проекте имеет атрибут Copy Local, установленный на False.

Установите любые точки останова, которые вы хотите в своем коде.

Теперь, когда вы «запускаете» dll, он должен запустить AutoCAD.

Загрузите вашу dll в AutoCAD, используя netload (Убедитесь, что вы выбрали отладочную версию - версии выпуска не будут работать!)

Модуль должен работать до вашей первой точки останова.

4 голосов
/ 15 декабря 2011

Autocad не предоставляет отладочную информацию для своих двоичных файлов (pdb файлы).

Если сбой происходит в вашем модуле, его довольно легко отладить, просто убедитесь, что у вас есть соответствующие pdb и dll. К dll я также говорю о arx и dbx файлах.

Если сбой происходит в модуле AutoCAD ... по опыту я на 99,9% уверен, что источником является ваш код, а не код AutoCAD.

...