Solved

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

Posted on 2009-07-02
10
2,470 Views
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. :)
0
Comment
Question by:chang2008
  • 6
  • 2
  • 2
10 Comments
 
LVL 53

Assisted Solution

by:Dhaest
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
http://it.toolbox.com/blogs/programming-life/debugging-net-applications-stopping-the-breakpoint-will-not-currently-be-hit-message-26262
0
 

Author Comment

by:chang2008
ID: 24763986

For this website : http://it.toolbox.com/blogs/programming-life/debugging-net-applications-stopping-the-breakpoint-will-not-currently-be-hit-message-26262

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?
0
 

Author Comment

by:chang2008
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.
0
 
LVL 53

Expert Comment

by:Dhaest
ID: 24770329
Are the projects referenced ?
0
 

Author Comment

by:chang2008
ID: 24770829
Yes, test project reference to main project.
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 39

Accepted Solution

by:
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.

0
 

Author Comment

by:chang2008
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 .....
m_ctrlDelCom.SetWindowTextA("Delete");

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

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

Author Comment

by:chang2008
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.
0
 

Author Closing Comment

by:chang2008
ID: 31599180
Thanks :)
0
 
LVL 39

Expert Comment

by:itsmeandnobodyelse
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).
0

Featured Post

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Suggested Solutions

In this article, I'll describe -- and show pictures of -- some of the significant additions that have been made available to programmers in the MFC Feature Pack for Visual C++ 2008.  These same feature are in the MFC libraries that come with Visual …
What my article will show is if you ever had to do processing to a listbox without being able to just select all the items in it. My software Visual Studio 2008 crystal report v11 My issue was I wanted to add crystal report to a form and show…
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. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…

743 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now