Я написал общую библиотеку, которая частично используется приложением Windows, написанным в Visual Studio 6 (чистый C).Как получить отладочные символы в DLL или извлечь их в файл dbg с помощью Mingw?
Библиотека работает безупречно под Linux, но под Windows что-то сломалось где-то (в ней используется #ifdef WIN32, который может вложить что-то ошибочное).
Но добавление библиотеки DLL в качестве «дополнительных DLL» к проекту в VS6 и запуск приложения в режиме отладки, говорит, что файлы DLL не содержат отладочной информации.
Библиотека построена на gcc без оптимизации (-O0) и с символами отладки (-g).
i586-mingw32msvc-nm -a file.dll
показывает символы, а при удалении DLL его размер сокращается до половины и i586-mingw32msvc-nm -a file.dll
больше ничего не будет показывать.
Но Visual Studio 6 все еще жалуется на отсутствие информации об отладке. И используя инструмент «Dependeny Walker», он говорит «Debug = No» в библиотеке.
Для решения проблем при работе под Windows информация об отладке имеет решающее значение. Но как можно включить их в DLL (в совместимом с VS6 образом) или извлечь их в файл dbg/pdb?
Похожие: https://stackoverflow.com/questions/19269350/how-to-generate-pdb-files-while-building-library-using-mingw –