agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java	Fri Sep  9 14:15:44 2011
--- new/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java	Fri Sep  9 14:15:44 2011

*** 1,7 **** --- 1,7 ---- /* ! * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. ! * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 26,39 **** --- 26,37 ---- import java.io.PrintStream; import java.net.*; import java.rmi.*; import sun.jvm.hotspot.debugger.*; import sun.jvm.hotspot.debugger.dbx.*; import sun.jvm.hotspot.debugger.proc.*; import sun.jvm.hotspot.debugger.remote.*; import sun.jvm.hotspot.debugger.win32.*; import sun.jvm.hotspot.debugger.windbg.*; import sun.jvm.hotspot.debugger.linux.*; import sun.jvm.hotspot.memory.*; import sun.jvm.hotspot.oops.*; import sun.jvm.hotspot.runtime.*;
*** 434,444 **** --- 432,441 ---- // Solaris // private void setupDebuggerSolaris() { setupJVMLibNamesSolaris(); if(System.getProperty("sun.jvm.hotspot.debugger.useProcDebugger") != null) { ProcDebuggerLocal dbg = new ProcDebuggerLocal(null, true); debugger = dbg; attachDebugger(); // Set up CPU-dependent stuff
*** 464,552 **** --- 461,472 ---- 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();
*** 587,601 **** --- 507,517 ---- // Note we do not use a cache for the local debugger in server // mode; it will be taken care of on the client side (once remote // debugging is implemented). if (System.getProperty("sun.jvm.hotspot.debugger.useWindbgDebugger") != null) { debugger = new WindbgDebuggerLocal(machDesc, !isServer); } else { debugger = new Win32DebuggerLocal(machDesc, !isServer); } attachDebugger(); // FIXME: add support for server mode }

agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File