Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 141326 Details for
Bug 282924
[breakpoints][cdi] Breakpoint install marker not handled properly for multiple launches
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Fix
zpatch.txt (text/plain), 4.06 KB, created by
Marc Khouzam
on 2009-07-10 14:36:09 EDT
(
hide
)
Description:
Fix
Filename:
MIME Type:
Creator:
Marc Khouzam
Created:
2009-07-10 14:36:09 EDT
Size:
4.06 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.cdt.dsf.gdb >Index: src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.cdt/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java,v >retrieving revision 1.7.2.1 >diff -u -r1.7.2.1 MIBreakpointsManager.java >--- src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java 10 Jul 2009 17:58:22 -0000 1.7.2.1 >+++ src/org/eclipse/cdt/dsf/mi/service/MIBreakpointsManager.java 10 Jul 2009 18:35:05 -0000 >@@ -578,6 +578,9 @@ > // Reset the thread (is it necessary?) > attributes.put(ATTR_THREAD_ID, NULL_STRING); > >+ // Remove breakpoint problem marker (if any) >+ removeBreakpointProblemMarker(breakpoint); >+ > // Finally, update the platform breakpoint > try { > breakpoint.incrementInstallCount(); >@@ -777,6 +780,8 @@ > } > > // Check if the breakpoint is installed: it might not have been if it wasn't enabled at startup (Bug261082) >+ // Or the installation might have failed; in this case, we still try to install it again because >+ // some attribute might have changed which will make the install succeed. > if (!breakpointIDs.containsKey(breakpoint) && !targetBPs.containsValue(breakpoint)) { > // Install only if the breakpoint is enabled > boolean bpEnabled = attributes.get(ICBreakpoint.ENABLED).equals(true) && fBreakpointManager.isEnabled(); >@@ -787,7 +792,7 @@ > determineDebuggerPath(dmc, attributes, new RequestMonitor(getExecutor(), rm) { > @Override > protected void handleSuccess() { >- installBreakpoint(dmc, breakpoint, attributes, new RequestMonitor(getExecutor(), rm)); >+ installBreakpoint(dmc, breakpoint, attributes, rm); > } > }); > } >@@ -1282,7 +1287,7 @@ > // Reset the breakpoint install count > for (IBreakpointsTargetDMContext ctx : fPlatformBPs.keySet()) { > Map<ICBreakpoint, Map<String, Object>> breakpoints = fPlatformBPs.get(ctx); >- clearBreakpointStatus(breakpoints.keySet().toArray(new ICBreakpoint[breakpoints.size()])); >+ clearBreakpointStatus(breakpoints.keySet().toArray(new ICBreakpoint[breakpoints.size()]), ctx); > } > // This will prevent Shutdown() from trying to remove bps from a > // backend that has already shutdown >@@ -1296,15 +1301,23 @@ > /** > * @param bps > */ >- private void clearBreakpointStatus(final ICBreakpoint[] bps) >+ private void clearBreakpointStatus(final ICBreakpoint[] bps, final IBreakpointsTargetDMContext ctx) > { > new Job("Clear Breakpoints Status") { //$NON-NLS-1$ > @Override > protected IStatus run(IProgressMonitor monitor) { > IWorkspaceRunnable wr = new IWorkspaceRunnable() { > public void run(IProgressMonitor monitor) throws CoreException { >- for (ICBreakpoint breakpoint : bps) { >- breakpoint.resetInstallCount(); >+ // For every platform breakpoint that has at least one target breakpoint installed >+ // we must decrement the install count, for every target breakpoint. >+ // Note that we cannot simply call resetInstallCount() because another >+ // launch may be using the same platform breakpoint. >+ Map<ICBreakpoint, Vector<IBreakpointDMContext>> breakpoints = fBreakpointIDs.get(ctx); >+ for (ICBreakpoint breakpoint : breakpoints.keySet()) { >+ Vector<IBreakpointDMContext> targetBps = breakpoints.get(breakpoint); >+ for (int i=0; i<targetBps.size(); i++) { >+ breakpoint.decrementInstallCount(); >+ } > } > } > };
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 282924
: 141326