Re: Broken Debugger on OS X Sierra
Martin Entlicher <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.openide.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Andreas, this can not be a NetBeans issue and you'd better ask debugger developers at [email protected] NetBeans is using address=localhost:... and then connects to localhost. localhost should always be set in /etc/hosts AFAIK, thus it ought to work. Do you use the same JDK version after the OS upgrade? During evaluation of https://netbeans.org/bugzilla/show_bug.cgi?id=268056 I've found that they apparently changed some logic in the Java debugger backend in JDK 9. I do not think you've upgraded to JDK 9, but maybe there could be some subtle changes between JDK updates... Regards, Martin On 2.10.2016 04:27, Andreas Stefik wrote: > Folks, > > I recently upgraded to OS X Sierra and have run into a problem with > the debugger. I don't think it's a bug in NetBeans, but want to report > is here, see if anyone else has run into it, and see if there's a > better solution. > > First, the problem is that we have a custom debugger, which boots and > runs Java Bytecode. Our debug launcher looks like this: > > //typical connector > LaunchingConnector connector = > Bootstrap.virtualMachineManager().defaultConnector(); > > //all the flags > Map map = connector.defaultArguments(); > Connector.Argument mainArg = (Connector.Argument) map.get("main"); > mainArg.setValue("-jar \"" + executable + "\""); > Connector.Argument optionsArg = (Connector.Argument) map.get("options"); > optionsArg.setValue("-Duser.dir=\"" + workingDirectory + "\""); > > //launch the VM > try { > virtualMachine = connector.launch(map); > } catch (IOException | IllegalConnectorArgumentsException | > VMStartException ex) { > Logger.getLogger(JDIDebugger.class.getName()).log(Level.SEVERE, null, ex); > } > > Nothing special here, just bootup a JVM and run it with debug > settings. This translates to a command that looks something like this > on my machine: > > /Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home/jre/bin/java > -Duser.dir=/Users/stefika/Repositories/quorum-language/Quorum3 -Xdebug > -Xrunjdwp:transport=dt_socket,address=CSadmins-MacBook-Pro-3.local:63636,suspend=y > -jar /Users/stefika/Repositories/quorum-language/Quorum3/Run/Default.jar > > Again, nothing special here. However, after upgrading to Sierra, I was > getting this error (key problem in bold): > > ERROR: transport error 202: *gethostbyname: unknown host* > ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) > JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports > initialized [debugInit.c:750] > FATAL ERROR in native method: JDWP No transports initialized, > jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197) > Abort trap: 6 > > Unknown host tells me it's not connecting. This means my machine's > name, which happens to be CSadmins-MacBook-Pro-3.local, isn't in the > /etc/hosts file on my Mac. Now, that's easy to fix by adding a > loopback entry to the hosts file, but here's what I don't get: > > *Questions*: > > 1. Why is this necessary on OS X Sierra, but not the previous release? > > 2. I'm a little worried this is going to break for others using our > stuff in deployment. Is there anything I should change about my > connector? The Map entry doesn't contain a dt_socket command. Should I > add one manually to the map or is that bad? > > 3. The Java debugger doesn't appear to have this problem. For local > runs, should I be doing something different? > > I hope that explains the problem. Obviously, I'd like to avoid users > having to mess with this file, if possible. > > Stefik > >