Why does Visual C++ not hit a breakpoint in, or step through a specific function?

I have the following:

classA::FuncA()
{
 ... code
   FuncB();
 ... code
}

classA::FuncB(const char *pText)
{
    SelectObject(m_hDC, GetStockObject (  SYSTEM_FONT)); 
    wglUseFontBitmaps(m_hDC, 0, 255, 1000); 
    glListBase(1000); 
    glCallLists(static_cast<GLsizei>(strlen(pText)), GL_UNSIGNED_BYTE, pText); 
}

I can hit breakpoints anywhere in FuncA. If I try to step into FuncB, it steps over. It will accept a breakpoint in FuncB, but never hits it. I know it is executing FuncB, because I can put a MessagBox() call in FuncB and get the message box.

I'm new to VS2005 after a few years away from extensive VC6 usage. The one situation like this I recall from my VC6 days, is if symbol information is not available. However, in this case both functions are in the same file, so the symbol information must be correct. Also in that case I think you couldn't even set the breakpoint.

I've tried all the silly voodoo like rebuilding the whole solution.

What stupid thing am I overlooking?

EDIT: Added code for FuncB in response to comment about it possibly being essentially inline-able. (It's just the exact sample code from MSDN for wglUseFontBitmaps [minus comments here]). I don't see how inlining that would impede stepping through each call.

Answers


Make sure all compiler optimizations are disabled (/Od). Compiler optimization can cause problems with debugger breakpoints.


Not sure what the problem is, but one thing you might try is to look at the disassembled code. You can switch betwen the source code and disassbled view with VS. I do not have the IDE in front of me at work, so the terms might be slightly off.

If you put the debugger into this mode, you can see what the assembly instructions that are executing. This helps sometimes to determine these kinds of problems. Sometimes, although not usually with a debug build, calls are optimized out by the compiler.


Need Your Help

c# pointers vs IntPtr

c# .net pointers

this is the 2nd part of the 1st question using c# pointers

Getting the EBP of a thread in a different process

c++ windows callstack

I was wondering if there's a way to obtain the EBP of a thread in a different process (in C++ on windows) other than using "GetThreadContext". I suspect that this method takes too much time (I us...

Shortcode inside shortcode not working in Wordpress?

wordpress wordpress-theming shortcode

I need to add shortcodes such as image, hr and button. However, I also needed to remove the wpautop filter (remove_filter('the_content','wpautop')) for hr to work properly. Now, to manually set