"Function has no address" despite disabled optimization (/Od)

4.4k views Asked by At

During debug in MSVC 2012, I am attempting to call some functions from the Watch window in order to dump data to files. However, I keep getting this error:

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

The class Matrix is located in my own external library. A quick check showed that none of the methods in external libraries have addresses and all attempts to call them from Watch return this error, except for those which are defined in the header files. The methods in the main project all have addresses regardless of where they are defined.

Optimization is disabled throughout the solution, of course. Symbols are loaded normally. How do I fix it?

2

There are 2 answers

1
Anton Poznyakovskiy On BEST ANSWER

So far, I found a workaround in building the external library statically. With statically linked libraries, the addresses of methods are found. Configuration manager allows keeping dynamic libraries for the Release easily.

0
Brans Ds On

As a simpler woraround, you can call target function(Matrix::Save) at least one time in current code branch. Then it will have an address because it is used.