[jbosstools-issues] [JBoss JIRA] Commented: (JBIDE-8548) Support auto discovery of remote processes for debugging
Aslak Knutsen (JIRA)
jira-events at lists.jboss.org
Thu Mar 10 09:05:45 EST 2011
[ https://issues.jboss.org/browse/JBIDE-8548?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12587142#comment-12587142 ]
Aslak Knutsen commented on JBIDE-8548:
--------------------------------------
JConsole seems to use the sun.jvmstat API to discover the processes:
{code}
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import sun.jvmstat.monitor.HostIdentifier;
import sun.jvmstat.monitor.MonitoredHost;
import sun.jvmstat.monitor.MonitoredVm;
import sun.jvmstat.monitor.MonitoredVmUtil;
import sun.jvmstat.monitor.VmIdentifier;
/**
* LocalJVMTestCase
*
* @author <a href="mailto:aslak at redhat.com">Aslak Knutsen</a>
* @version $Revision: $
*/
public class LocalJVMTestCase
{
@Test
public void shouldBeAbleToFindAllLocalVMs() throws Exception
{
MonitoredHost host = MonitoredHost.getMonitoredHost(new HostIdentifier((String)null));
Set<Integer> vmPids = host.activeVms();
for(Integer vmPid : vmPids)
{
System.out.println("PID: " + vmPid);
MonitoredVm vm = host.getMonitoredVm(new VmIdentifier(String.valueOf(vmPid)));
System.out.println("version: " + MonitoredVmUtil.vmVersion(vm));
System.out.println("jvmArgs: " + MonitoredVmUtil.jvmArgs(vm));
System.out.println("jvmFlags: " + MonitoredVmUtil.jvmFlags(vm));
System.out.println("attachable: " + MonitoredVmUtil.isAttachable(vm));
Map<String, String> arguments = getArguments(MonitoredVmUtil.jvmArgs(vm));
System.out.println("jdwp: " + arguments.get("-Xrunjdwp:transport"));
System.out.println();
}
}
private Map<String, String> getArguments(String args)
{
Map<String, String> arguments = new HashMap<String, String>();
for(String argument : args.split(" "))
{
if(argument.length() == 0)
{
continue;
}
String[] nameValue = argument.split("=", 2);
if(nameValue.length == 1)
{
arguments.put(nameValue[0], nameValue[0]);
}
else
{
arguments.put(nameValue[0], nameValue[1]);
}
}
return arguments;
}
}
{code}
Possible output (JBoss AS 6.0.0.Final VM on Linux):
*PID*: 4589
*version*: 19.0-b09
*jvmArgs*: -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Djava.net.preferIPv4Stack=true -Dprogram.name=run.sh -Djava.library.path=/home/aslak/dev/servers/jboss-6.0.0.Final/bin/native/lib64 -Djava.endorsed.dirs=/home/aslak/dev/servers/jboss-6.0.0.Final/lib/endorsed
*jvmFlags*:
*attachable*: true
*jdwp: dt_socket,address=8787,server=y,suspend=n*
> Support auto discovery of remote processes for debugging
> --------------------------------------------------------
>
> Key: JBIDE-8548
> URL: https://issues.jboss.org/browse/JBIDE-8548
> Project: Tools (JBoss Tools)
> Issue Type: Feature Request
> Reporter: Aslak Knutsen
>
> It would be helpful if Eclipse could provide a 'debug as' with auto discover of local java processes, somewhat like jconsole does. Eclipse should also auto associate the debug session with the current project.
> 'debug as' -> 'remote process x'
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbosstools-issues
mailing list