Я в некоторой исключительной ситуации: у меня есть приложение, которое компилирует, связывает и запускает при компиляции с MSVC.Сейчас я нахожусь в процессе перекомпиляции его clang-cl, что приводит к его компиляции, связыванию и аварийному завершению.
Благодаря Dependency Walker я обнаружил, что загружаются неожиданные библиотеки DLL.В моем случае, чтобы найти символ для std::allocator<char>::allocator(allocator const &)
.
С этим, у меня в настоящее время есть следующая информация:
- DLL, требующая этот символ
- DLLразоблачение символа
- Символ, который вызывает проблемы
Чтобы зарегистрировать ошибку, я должен иметь возможность уменьшить код до приемлемого размера.Загрузка всей базы проприетарного кода невозможна, загрузка 20-строчного файла .cpp:
Чтобы сократить, мне нужно найти файл .cpp / .obj, для которого требуется этот символ.Отсюда его уменьшение становится легкой работой.
С этим я ищу способ определить, ищет ли файл .obj символ в другой DLL.
I 'мы уже нашли:
- dumpbin / SYMBOLS: сообщает, куда экспортируется символ
- dumpbin / DEPENDENTS: сообщает DLL, от чего зависит DLL,
dumpbin /DEPENDENTS
состояния:
Выводит ли не имена импортированных функций.
Как сделать дампимена импортированных функций, основанные на файле .obj?