Отладка собственного кода C++, вызываемого из управляемой библиотеки C#, выполняемой другим приложением
У меня есть следующие настройки: Стороннее приложение (Autodesk Revit) выполняет мою библиотеку C# через C# Revit API (библиотека называется Revit addon, называется csapi). Затем моя библиотека C# вызывает другую собственную библиотеку C++ (libbrowserhost-client-capid.dll) через PInvoke.
Моя цель - отладить нативную библиотеку в Visual Studio. У меня есть источник C++ и символы.
Я уже в состоянии отлаживать его, если я перекомпилирую свою библиотеку плагина C# как исполняемый файл и вызываю неуправляемую библиотеку прямо из исполняемого файла. В окне вывода Visual Studio я вижу следующее:
'csapi.exe' (Win32): Loaded 'D:\Documents\Visual Studio 2017\Projects\browserhost-csharp-api\BrowserhostCSharpApi\bin\x64\Debug\libbrowserhost-client-capid.dll'. Symbols loaded.
Проблема возникает, когда Revit становится первым в исполнительной цепочке. Отладчик пропускает собственные вызовы PInvoke (например, Step Over). Выход:
...
'Revit.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Ondra\AppData\Local\Temp\RevitAddins\csapi-Executing-20180318_200947_6493\csapi.dll', Symbols loaded.
'Revit.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files\Autodesk\Revit 2018\MessageLogger.dll'
'Revit.exe' (Managed (v4.0.30319)): Loaded 'C:\Program Files\Autodesk\Revit 2018\log4net.dll'
...
Но я не вижу загруженного там libbrowserhost-client-capid.dll.
Во-первых, это выход чего? Отладчик или динамический компоновщик или что-то еще? Во-вторых, как мне добиться загрузки libbrowserhost-client-capid.dll в процесс Revit, чтобы иметь возможность его отладки? Можно ли как-нибудь вручную загрузить DLL в VS отладчик?