1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-09-10 03:53:21 +02:00

Added the initialization of the shared libraries' attributes to CygwinGDBDebugger.

This commit is contained in:
Mikhail Khodjaiants 2003-09-30 01:59:10 +00:00
parent f72312491a
commit dbfda6695e
2 changed files with 35 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2003-09-29 Mikhail Khodjaiants
Added the initialization of the shared libraries' attributes to CygwinGDBDebugger.
* src/org/eclipse/cdt/debug/mi/core/CygwinGDBDebugger.java
2003-09-26 Alain Magloire 2003-09-26 Alain Magloire
Second part of PR 43496. Second part of PR 43496.
@ -14,7 +19,7 @@
* src/org/eclipse/cdt/debug/mi/core/MIPlugin.java * src/org/eclipse/cdt/debug/mi/core/MIPlugin.java
2003-11-10 Mikhail Khodjaiants 2003-09-11 Mikhail Khodjaiants
Moving the shared library search paths block to mi UI. Moving the shared library search paths block to mi UI.
* IMILaunchConfigurationConstants.java: added the 'ATTR_DEBUGGER_SOLIB_PATH' attribute. * IMILaunchConfigurationConstants.java: added the 'ATTR_DEBUGGER_SOLIB_PATH' attribute.
@ -30,7 +35,7 @@
2003-09-09 Mikhail Khodjaiants 2003-09-09 Mikhail Khodjaiants
Added the 'stop-on-solib-events' option. Added the 'stop-on-solib-events' option.
Changed the initialization of the hared library search path. Changed the initialization of the shared library search path.
Changed the messages of the thrown exceptions. Changed the messages of the thrown exceptions.
* GDBDebugger.java * GDBDebugger.java

View file

@ -5,14 +5,20 @@
package org.eclipse.cdt.debug.mi.core; package org.eclipse.cdt.debug.mi.core;
import java.util.Collections;
import java.util.List;
import org.eclipse.cdt.debug.core.cdi.CDIException; import org.eclipse.cdt.debug.core.cdi.CDIException;
import org.eclipse.cdt.debug.core.cdi.ICDISession; import org.eclipse.cdt.debug.core.cdi.ICDISession;
import org.eclipse.cdt.debug.core.cdi.ICDISharedLibraryManager;
import org.eclipse.cdt.debug.mi.core.cdi.Session; import org.eclipse.cdt.debug.mi.core.cdi.Session;
import org.eclipse.cdt.debug.mi.core.cdi.SharedLibraryManager;
import org.eclipse.cdt.debug.mi.core.command.CommandFactory; import org.eclipse.cdt.debug.mi.core.command.CommandFactory;
import org.eclipse.cdt.debug.mi.core.command.CygwinCommandFactory; import org.eclipse.cdt.debug.mi.core.command.CygwinCommandFactory;
import org.eclipse.cdt.debug.mi.core.command.MIGDBSet; import org.eclipse.cdt.debug.mi.core.command.MIGDBSet;
import org.eclipse.cdt.debug.mi.core.output.MIInfo; import org.eclipse.cdt.debug.mi.core.output.MIInfo;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPath;
import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfiguration;
@ -25,8 +31,29 @@ public class CygwinGDBDebugger extends GDBDebugger {
static final CygwinCommandFactory commandFactory = static final CygwinCommandFactory commandFactory =
new CygwinCommandFactory(); new CygwinCommandFactory();
/* Cygwin does not have any special initialization like solib paths etc.. */
protected void initializeLibraries(ILaunchConfiguration config, Session session) throws CDIException { protected void initializeLibraries(ILaunchConfiguration config, Session session) throws CDIException {
try {
ICDISharedLibraryManager mgr = session.getSharedLibraryManager();
if (mgr instanceof SharedLibraryManager) {
boolean stopOnSolibEvents = config.getAttribute(IMILaunchConfigurationConstants.ATTR_DEBUGGER_STOP_ON_SOLIB_EVENTS, false);
try {
((SharedLibraryManager)mgr).setStopOnSolibEvents(stopOnSolibEvents);
} 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 = mgr.getSharedLibraryPaths();
String[] paths = new String[oldPaths.length + p.size()];
System.arraycopy((String[])p.toArray(new String[p.size()]), 0, paths, 0, p.size());
System.arraycopy(oldPaths, 0, paths, p.size(), oldPaths.length);
mgr.setSharedLibraryPaths(paths);
}
} catch (CoreException e) {
throw new CDIException("Error initializing shared library options: " + e.getMessage());
}
} }
public ICDISession createLaunchSession( public ICDISession createLaunchSession(