Могу ли я отлаживать DLL-библиотеку C с помощью приложения C # в Visual Studio 2017?

#c# #c #c #dll #visual-studio-2017

#c# #c #c #dll #visual-studio-2017

Вопрос:

Я знаю, что это можно сделать с помощью C , но не могу заставить его работать с C.

У нас есть автономное аппаратное устройство, использующее контроллер ARM с прошивкой, написанной на C. Чтобы ускорить тестирование, мы решили создать программную симуляцию устройства, состоящего из библиотеки DLL C , используя прошивку фактического устройства C в качестве исходного кода и интерфейс C # GUI.

DLL была создана с использованием шаблона C с настройкой-> C / C -> Дополнительно-> Compile As, равной «Compile as Code (/TC)». Графический интерфейс и dll работают нормально, но я хотел бы отладить исходный код C dll, но не могу заставить работать отладку в смешанном режиме. Является ли компилятор C несовместимым с отладкой в смешанном режиме?

Комментарии:

1. Существует pdb-файл, содержащий символы, необходимые для отладки. Без файла pdb вы можете выполнять отладку только в ассемблерном коде. Обычно я выполняю отладку, создавая файл журнала и выводя информацию в отладку, когда файл символов недоступен.

2. В дополнение к отсутствию отладочной информации, скорее всего, dll оптимизирована. Оптимизация почти всегда делает код похожим на то, что он прошел через blender. Нет ничего невозможного в использовании отладчика с оптимизированным кодом, но может быть очень сложно разобраться в потоке.

3. Убедитесь, что ваша DLL-библиотека C встроена в Debug с помощью файла .PDB, затем задайте свойства VS project для dll (Debugging), чтобы запустить внешнюю программу (ваш симулятор). Тогда будут достигнуты точки останова в C dll. Запустите проект dll в отладчике, а не в симуляторе.