Last edited Apr 27 at 11:26 PM by crwilcox, version 12


pminaev Oct 18, 2014 at 11:10 PM 
This is basically the standard behavior of the VS native code debugger, and it's documented on MSDN - we should just link there:

One catch is that the symbols must be produced by _the same build_ that produced the binaries. A different build, even if the input source code was identical, will still not match.

mrolle Oct 18, 2014 at 9:56 PM 
Important -- the debugger will not step into C++ code unless it can find the symbols for that code. This means that the code has to be compiled with Program Database debug information, *and* the .pdb file has to be somewhere the debugger can find it, *and* it has to be the same .pdb file that was produced when the image was linked. You can move the image file (as in an extension being moved to the Python site-images folder), then you can either leave the .pdb in its original location or move it to the place where you moved the image.
I made the mistake of rebuilding my image file without rebuilding the .pdb file. The debugger correctly realized there was a mismatch and so did not load any symbols.
Without symbols for the native code being stepped into, the debugger will not step into it, but rather it will step over it.
Perhaps you could add something about this to the text of this page. That would be nice.
In the case of an extension, I moved the .pyd file into the Python `site-packages` folder, but didn't move the