The breakpoint will not currently be hit. The source code is different from the original version.

Posted on 2009-07-02
Last Modified: 2013-11-27
Hi... :)

I'm using Visual Studio 2008 + Window XP.
There are 2 projects in my solution. 1st for main project. 2nd for unit test.

I'm trying to debugging and found that break point doesn't work and and pop up the detail as below:

"The breakpoint will not currently be hit. The source code is different from the original version."

I have checked all the properties and they are all in debug mode. Also already try to clean solution rebuilt, restart VS, restart computer, delete pdb file in debug folder and still doesn't work. In release mode breakpoint works. In debug mode breakpoint doesn't work. It is so weird. :(

What I observe is ...
I have a button and caption is "XXX" and I use this sentense to change the button's name.

m_ctrlDelCom.SetWindowTextA(_T("Delete Component"));

If I change to release mode and rebuilt. The text will change from "XXX" to "Delete Component"
If it is still in debug mode and rebuilt. The text will still remain "XXX".

Please kindly help.
Thank you very much in advance. :)
Question by:chang2008
  • 6
  • 2
  • 2
LVL 53

Assisted Solution

Dhaest earned 100 total points
ID: 24763124
Perhaps you're problem can also be solved with the help of this article

Debugging .Net Applications: Stopping The "Breakpoint Will Not Currently Be Hit" Message

Author Comment

ID: 24763986

For this website :

1st solution : The pop-up detail change from "The breakpoint will not currently be hit. The source code is different from the original version." to "The breakpoint will not currently be hit. No symbols have been loaded for this document."

2nd solution : I don't know how to do it. Please kindly explain.

3rd solution : There is no obj or bin folders.

4th solution : doesn't work.

5th solution : doesn't work.

6th solution : Active(Debug), Active(Win32)

7th solution : What is Web.config? I don't do anything about web apps. I'm using MFC.

8th solution : I don't use ASP.Net

9th solution : Project Properties -> Configuration Properties -> Build (There is no Build there. Under Configuration Properties, there are General, Debugging, C/C++, Linker, Manifest Tool, Resources, MIDL, XML Document Generator, Browse Information, Build Events, Custom Build Step.) Which one?

10th solution : doesn't work.

11th solution : Debugger type I have set to "Auto".

12th solution : I don't understand.

13th solution : I don't understand, too.

14th solution : How could I check it?

14.1th solution : I don't understand.

14.2th solution : I think that it is not related to my project.

14.3th solution : This one seem possible because I have 2 projects in 1 solution but how could I check it?

14.4th solution : ASP.NET ... I don't use it.

What should I do now?

Author Comment

ID: 24764139
Also I have another project. Debugging works fine. (But this one has 1 project in 1 solution.) Another one, which has problem is the one has 2 projects in 1 solution. I still can't solve the problem.
Are your AD admin tools letting you down?

Managing Active Directory can get complicated.  Often, the native tools for managing AD are just not up to the task.  The largest Active Directory installations in the world have relied on one tool to manage their day-to-day administration tasks: Hyena. Start your trial today.

LVL 53

Expert Comment

ID: 24770329
Are the projects referenced ?

Author Comment

ID: 24770829
Yes, test project reference to main project.
LVL 39

Accepted Solution

itsmeandnobodyelse earned 400 total points
ID: 24784420
>>>> In release mode breakpoint works. In debug mode breakpoint doesn't work. It is so weird.

That must be a misunderstanding or you mixed up the configurations somehow. In Release mode all breakpoints were ignored. If a program breaks when the active configuration is (the) 'Release configuration', the configuration actually is a Debug configuration, i. e. the Optimization was switched off, the runtime dlls in the Code Generation were debug runtime dlls and the _DEBUG was defined in the Preprocessor macros (Release: NDEBUG).

That hardly could be achieved by accident, so I would assume the statement 'In release mode breakpoint works' should mean, 'In Release mode the statement of the line where I put a breakpoint at,  was successfully executed while in Debug mode it doesn't break there'.

>>>> m_ctrlDelCom.SetWindowTextA(_T("Delete Component"));

First, if calling SetWindowTextA explicitly you definitively should *NOT* use the _T macro. The SetWindowTextA takes a const char* (LPCSTR) what would require a call like

     m_ctrlDelCom.SetWindowTextA("Delete Component");

By using the _T macro the statement wouldn't compile after switching to MS UNICODE character set.

Where did you call that statement?

It either should be called in OnInitDialog (or OnInitialUpdate in case of a form view), or in a handler function, e. g. when handling a button.

In both cases breakpoints *MUST* apply when putting them immediately after the initial curly opening bracket { of the handler function. If the Studio editor doesn't accept the breakpoint there, one reason for that is that the source you were editing is not the same as the debugger was refering to. To verify that

  - Close all documents
  - open the file from the project tree by double-clicking on it
  - hover with mouse over the label of the file in the edit tab
  - check that the filepath is the one you expect
  - check whether the statement where you want to set the breakpoint
    still is in the file you opened freshly and that setting the breakpoint
    still doesn't work.

If still the issue wasn't gone, close the Visual Studio and

   - delete folders Debug and Release below project directory
   - delete temporary files project.ncb, project.aps, project.bsc, project.pdb

Restart Visual Studio and rebuild both Release and Debug version.

If still the issue wasn't gone, the function you were trying to set the breakpoint probably is in a dll (and not in main project). Then, it is quite normal that the IDE firstly says that the breakpoint couldn't be applied as at compile time the connection to the dll could be unknown. But, at runtime you should be able to set a breakpoint in your main project where the dll firstly was invoked and *after* that you should be able to set a breakpoint to any function of the dll as it now was known by the debugger.


Author Comment

ID: 24791818
My project was UNICODE. That's why I use _T().
But it doesn't compatible to other plug-in. So, I have changed to Multi-byte.

I will summerize what happen.
1.) Debug run normally with UNICODE.
2.) Combine with other pluging has memory leak in strcore. So, I have chaned to Multi-bye. (Debug still run normally)
3.) Add unit test (C++) project. Create 2 classes for test. Change those 2 new classes property from "No Common Language Runtime support" to "Common Language Runtime Support (/Clr). Add reference of unit test to the main project. (Debug problem occures here)

4.) 1st Observation :

Debugging .....
m_ctrlDelCom.SetWindowTextA("Delete Component");  (Debug reach to the point)

Edit something, for example change "Delete Component" to "Delete". Then Debugging .....
m_ctrlDelCom.SetWindowTextA("Delete");   (Debug doesn't reach to the point)

Change back to "Delete Component". Then Debugging .....
m_ctrlDelCom.SetWindowTextA("Delete Component");  (Debug again can reach to the point)

5.) 2nd Observation :

Debugging .....
m_ctrlDelCom.SetWindowTextA("Delete Component");  (Debug reach to the point)

Edit something, for example change "Delete Component" to "Delete". Then Debugging .....
m_ctrlDelCom.SetWindowTextA("Delete");   (Debug doesn't reach to the point)

Release .....

Then Debugging ..... again
m_ctrlDelCom.SetWindowTextA("Delete");   (Debug reach to the point)

By the way, I will try the solution that "itsmeandnobodyelse" suggest. Thanks. :)

Author Comment

ID: 24804379
I have solved the problem.

The problem comes from I mix the native and clr because I have to use unit test. Then it calls regasm instead of regsvr32. (I don't know why.)

1.) So, I use post-build event regsvr32 to call regsvr32 .../Debug/my.dll in debug folder and turn off the register output in linker.
2.) and also I config the normal debug with excluded unit test reference code and config the debug test with included unit test reference code.

Author Closing Comment

ID: 31599180
Thanks :)
LVL 39

Expert Comment

ID: 24804648
>>>> Then it calls regasm instead of regsvr32.
The regasm is to register .NET assemblies while regsvr32 calls entry DllRegisterServer in the dll. If you have a mixed assembly these options were not combinable. But you could call the DllRegisterServer function yourself after loading the dll (what probably was made before you changed to /clr).

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
fizzArray2 challenge 1 82
matchUp  challenge 6 65
Changing the installation path of this MSI 5 104
changeXy challenge 13 84
Introduction: Ownerdraw of the grid button.  A singleton class implentation and usage. Continuing from the fifth article about sudoku.   Open the project in visual studio. Go to the class view – CGridButton should be visible as a class.  R…
A theme is a collection of property settings that allow you to define the look of pages and controls, and then apply the look consistently across pages in an application. Themes can be made up of a set of elements: skins, style sheets, images, and o…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA.…

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question