agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6879063 Cdiff agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java

agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java

Print this page

        

*** 27,37 **** import java.io.PrintStream; import java.net.*; import java.rmi.*; import sun.jvm.hotspot.*; import sun.jvm.hotspot.debugger.*; - import sun.jvm.hotspot.debugger.dbx.*; import sun.jvm.hotspot.debugger.proc.*; import sun.jvm.hotspot.debugger.cdbg.*; import sun.jvm.hotspot.debugger.win32.*; import sun.jvm.hotspot.debugger.windbg.*; import sun.jvm.hotspot.debugger.linux.*; --- 27,36 ----
*** 57,70 **** * of exceptions and setting of breakpoints. </P> * * <P> The BugSpot debugger requires that the underlying Debugger * support C/C++ debugging via the CDebugger interface. </P> * - * <P> FIXME: need to add a way to configure the paths to dbx and the - * DSO from the outside. However, this should work for now for - * internal use. </P> - * * <P> FIXME: especially with the addition of remote debugging, this * has turned into a mess; needs rethinking. </P> */ public class BugSpotAgent { --- 56,65 ----
*** 625,636 **** // Solaris // private void setupDebuggerSolaris() { setupJVMLibNamesSolaris(); - String prop = System.getProperty("sun.jvm.hotspot.debugger.useProcDebugger"); - if (prop != null && !prop.equals("false")) { ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true); debugger = dbg; attachDebugger(); // Set up CPU-dependent stuff --- 620,629 ----
*** 654,734 **** } else { throw new DebuggerException("Solaris only supported on sparc/sparcv9/x86/amd64"); } dbg.setMachineDescription(machDesc); - return; - } else { - String dbxPathName; - String dbxPathPrefix; - String dbxSvcAgentDSOPathName; - String dbxSvcAgentDSOPathPrefix; - String[] dbxSvcAgentDSOPathNames = null; - - // use path names/prefixes specified on command - dbxPathName = System.getProperty("dbxPathName"); - if (dbxPathName == null) { - dbxPathPrefix = System.getProperty("dbxPathPrefix"); - if (dbxPathPrefix == null) { - dbxPathPrefix = defaultDbxPathPrefix; } - dbxPathName = dbxPathPrefix + fileSep + os + fileSep + cpu + fileSep + "bin" + fileSep + "dbx"; - } - dbxSvcAgentDSOPathName = System.getProperty("dbxSvcAgentDSOPathName"); - if (dbxSvcAgentDSOPathName != null) { - dbxSvcAgentDSOPathNames = new String[] { dbxSvcAgentDSOPathName } ; - } else { - dbxSvcAgentDSOPathPrefix = System.getProperty("dbxSvcAgentDSOPathPrefix"); - if (dbxSvcAgentDSOPathPrefix == null) { - dbxSvcAgentDSOPathPrefix = defaultDbxSvcAgentDSOPathPrefix; - } - if (cpu.equals("sparc")) { - dbxSvcAgentDSOPathNames = new String[] { - // FIXME: bad hack for SPARC v9. This is necessary because - // there are two dbx executables on SPARC, one for v8 and one - // for v9, and it isn't obvious how to tell the two apart - // using the dbx command line. See - // DbxDebuggerLocal.importDbxModule(). - dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + "v9" + fileSep + "lib" + fileSep + "libsvc_agent_dbx.so", - dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + fileSep + "lib" + fileSep + "libsvc_agent_dbx.so", - }; - } else { - dbxSvcAgentDSOPathNames = new String[] { - dbxSvcAgentDSOPathPrefix + fileSep + os + fileSep + cpu + fileSep + "lib" + fileSep + "libsvc_agent_dbx.so" - }; - } - } - // Note we do not use a cache for the local debugger in server - // mode; it's taken care of on the client side - DbxDebuggerLocal dbg = new DbxDebuggerLocal(null, dbxPathName, dbxSvcAgentDSOPathNames, !isServer); - debugger = dbg; - - attachDebugger(); - - // Set up CPU-dependent stuff - if (cpu.equals("x86")) { - machDesc = new MachineDescriptionIntelX86(); - } else if (cpu.equals("sparc")) { - int addressSize = dbg.getRemoteProcessAddressSize(); - if (addressSize == -1) { - throw new DebuggerException("Error occurred while trying to determine the remote process's address size. It's possible that the Serviceability Agent's dbx module failed to initialize. Examine the standard output and standard error streams from the dbx process for more information."); - } - - if (addressSize == 32) { - machDesc = new MachineDescriptionSPARC32Bit(); - } else if (addressSize == 64) { - machDesc = new MachineDescriptionSPARC64Bit(); - } else { - throw new DebuggerException("Address size " + addressSize + " is not supported on SPARC"); - } - } - - dbg.setMachineDescription(machDesc); - } - } - private void connectRemoteDebugger() throws DebuggerException { RemoteDebugger remote = (RemoteDebugger) RMIHelper.lookup(debugServerID); debugger = new RemoteDebuggerClient(remote); machDesc = ((RemoteDebuggerClient) debugger).getMachineDescription(); --- 647,658 ----
agent/src/share/classes/sun/jvm/hotspot/bugspot/BugSpotAgent.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File