mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 17:56:01 +02:00
Fix for bug 68934: Debug into dll doesn't work.
The "solib-search-path" and "stop-on-solib-events" options are not supported by gdb on CygWin.
This commit is contained in:
parent
be18a50d17
commit
fd4d94d409
2 changed files with 7 additions and 33 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-07-02 Mikhail Khodjaiants
|
||||||
|
|
||||||
|
Fix for bug 68934: Debug into dll doesn't work.
|
||||||
|
The "solib-search-path" and "stop-on-solib-events" options are not supported by gdb on CygWin.
|
||||||
|
* src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java
|
||||||
|
|
||||||
2004-07-02 Alain Magloire
|
2004-07-02 Alain Magloire
|
||||||
|
|
||||||
* cdi/org/eclipse/cdt/debug/mi/core/cdi/ProcessManager.java
|
* cdi/org/eclipse/cdt/debug/mi/core/cdi/ProcessManager.java
|
||||||
|
|
|
@ -30,39 +30,7 @@ public class CygwinGDBDebugger extends GDBDebugger {
|
||||||
static final CygwinCommandFactory commandFactory = new CygwinCommandFactory();
|
static final CygwinCommandFactory commandFactory = new CygwinCommandFactory();
|
||||||
|
|
||||||
protected void initializeLibraries(ILaunchConfiguration config, Session session) throws CDIException {
|
protected void initializeLibraries(ILaunchConfiguration config, Session session) throws CDIException {
|
||||||
try {
|
// the "search-solib-path" and "stop-on-solib-events" options are not supported in CygWin
|
||||||
ICDISharedLibraryManager manager = session.getSharedLibraryManager();
|
|
||||||
if (manager instanceof SharedLibraryManager) {
|
|
||||||
SharedLibraryManager mgr = (SharedLibraryManager) manager;
|
|
||||||
boolean stopOnSolibEvents =
|
|
||||||
config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUGGER_STOP_ON_SOLIB_EVENTS, IMILaunchConfigurationConstants.DEBUGGER_STOP_ON_SOLIB_EVENTS_DEFAULT);
|
|
||||||
try {
|
|
||||||
mgr.setStopOnSolibEvents(stopOnSolibEvents);
|
|
||||||
// By default, we provide with the capability of deferred breakpoints
|
|
||||||
// And we set setStopOnSolib events for them(but they should not see the dll events ).
|
|
||||||
//
|
|
||||||
// If the user explicitly set stopOnSolibEvents well it probably
|
|
||||||
// means that they wanted to see those events so do no do deferred breakpoints.
|
|
||||||
if (!stopOnSolibEvents) {
|
|
||||||
mgr.setStopOnSolibEvents(true);
|
|
||||||
mgr.setDeferredBreakpoint(true);
|
|
||||||
}
|
|
||||||
} catch (CDIException e) {
|
|
||||||
// Ignore this error
|
|
||||||
// it seems to be a real problem on many gdb platform
|
|
||||||
}
|
|
||||||
}
|
|
||||||
List p = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUGGER_SOLIB_PATH, Collections.EMPTY_LIST);
|
|
||||||
if (p.size() > 0) {
|
|
||||||
String[] oldPaths = manager.getSharedLibraryPaths();
|
|
||||||
String[] paths = new String[oldPaths.length + p.size()];
|
|
||||||
System.arraycopy(p.toArray(new String[p.size()]), 0, paths, 0, p.size());
|
|
||||||
System.arraycopy(oldPaths, 0, paths, p.size(), oldPaths.length);
|
|
||||||
manager.setSharedLibraryPaths(paths);
|
|
||||||
}
|
|
||||||
} catch (CoreException e) {
|
|
||||||
throw new CDIException(MIPlugin.getResourceString("src.CygwinGDBDebugger.Error_init_shared_lib_options") + e.getMessage()); //$NON-NLS-1$
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ICDISession createLaunchSession(ILaunchConfiguration config, IFile exe) throws CDIException {
|
public ICDISession createLaunchSession(ILaunchConfiguration config, IFile exe) throws CDIException {
|
||||||
|
|
Loading…
Add table
Reference in a new issue