"Функция не имеет адреса", несмотря на отключенную оптимизацию (/Od)

во время отладки в MSVC 2012 я пытаюсь вызвать некоторые функции из окна Watch, чтобы сбросить данные в файлы. Однако я продолжаю получать эту ошибку:

Function Matrix::Save has no address, possibly due to compiler optimizations.   

класс Matrix находится в моей собственной внешней библиотеки. Быстрая проверка показала, что ни один из методов во внешних библиотеках не имеет адресов, и все попытки вызвать их из Watch возвращают эту ошибку, за исключением тех, которые определены в файлах заголовков. Все методы в основном проекте имеют адреса, независимо от того, где они определены.

оптимизация отключена на протяжении всего решения, конечно. Символы загружаются нормально. Как это исправить?

2 ответов


Как проще woraround, вы можете называть целевой функцией( Matrix:: Save) хотя бы один раз в текущей ветви кода. Тогда у него будет адрес, потому что он используется.


до сих пор, я нашел обходной путь в создании внешней библиотеки статически. С помощью статически связанных библиотек найдены адреса методов. Configuration manager позволяет легко сохранять динамические библиотеки для выпуска.