Hello,
I've got the same problem. The output of jdb doesn't seem to be
understood by JDE. The in/out communication with jdb appears in the
*Message* buffer.
The problem appears each time I use jdb, not only when I attach to an
external process.
My config is the following :
* GNU Emacs 21.1.90.1 (i686-pld-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2002-02-03 on ep09
* ecb-1.70
* eieio-0.17beta4
* elib-1.0
* jde-2.2.9beta9.1
* semantic-1.4beta14
* speedbar-0.13a
I did not experience these problems with the previous versions of JDE
(jde-2.2.9beta8 for instance).
Laurent
Hannu Koivisto wrote:
> Greetings,
>
> Well, it didn't work too well with 1.3.1 either (more about that in
> another mail, perhaps), but here's what I'm experiecing with JDE
> 2.9.9beta9.1, EIEIO 0.17beta4, Semantic 1.4beta14, speedbar
> 0.14beta3, Sun's J2SDK 1.4.0 and Emacs 21.2 running on Debian
> GNU/Linux x86 unstable. I'm trying to debug a simple test
> application that runs under JBoss 2.4.4 + Tomcat 4.0.1 combination.
> I can run the application just fine under JDE but it seems that JDE
> doesn't understand the output of jdb from 1.4.0 or something like
> that. When I set one breakpoint and select "JDE -> Debug App", a
> window appears with *debugorg.jboss.Main* buffer. Its contents are
> as follows:
>
> -------------------------------------------------------------------
> cd /usr/local/jboss/jboss/bin
> /usr/local/j2sdk/bin/jdb -launch -classpath
>/usr/local/j2sdk/lib/tools.jar:/usr/local/jboss/jboss/bin/run.jar:/usr/local/jboss/jboss/lib/crimson.jar
> -Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl
>-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl
> org.jboss.Main catalina
>
> Initializing jdb ...
>
> VM Started: step
>
>>stop at org.jboss.test.tomcat.ejb.bean.StatelessSessionBean:38
>
> No frames on the current call stack
>
> main[1] > Deferring breakpoint
>org.jboss.test.tomcat.ejb.bean.StatelessSessionBean:38.
> It will be set after the class is loaded.
>
> -------------------------------------------------------------------
>
> At the same time I get lots of output to *Messages*:
>
> -------------------------------------------------------------------
> menu-bar JDE Run App
> set-bp resp <<No frames on the current call stack>>
> set-bp resp <<
>
> set-bp resp <<
>
> set-bp resp <<main[1] >>
> set-bp resp <<> >>
> set-bp resp <<Deferring breakpoint
>org.jboss.test.tomcat.ejb.bean.StatelessSessionBean:38.
> It will be set after the class is loaded.>>
> set-bp resp <<
>
> set-bp resp <<
> Step completed: >>
> set-bp resp <<"thread=main", org.jboss.Main.main(), line=42 bci=0
>
> set-bp resp <<
>
> set-bp resp <<main[1] >>
> -------------------------------------------------------------------
>
> I can enter commands to *debugorg.jboss.Main* buffer but their
> output does not show up in that buffer as it did with Blackdown's
> J2SDK 1.3.1. I can see the output in *Messages*, however.
>
> The breakpoint does not really get set; if I "cont" the application
> and do something that should hit the breakpoint, it doesn't fire.
> The colour the breakpoint stays yellow, whereas with 1.3.1 it
> turned into red when the class in question got loaded.
>
> The contents of my prj.el:
>
> -------------------------------------------------------------------
> (jde-project-file-version "1.0")
> (jde-set-variables
> '(jde-db-option-application-args (quote ("catalina")))
> '(jde-run-working-directory "/usr/local/jboss/jboss/bin")
> '(jde-run-option-classpath (quote ("$JAVA_HOME/lib/tools.jar"
>"/usr/local/jboss/jboss/bin/run.jar" "/usr/local/jboss/jboss/lib/crimson.jar")))
> '(jde-run-option-vm-args (quote
>("-Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl"
>"-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl")))
> '(jde-run-option-application-args (quote ("catalina")))
> '(jde-bug-debugger-command-timeout 30)
> '(jde-db-source-directories (quote
>("/home/azure/projects/software/hacks/tomcat-test/src/main/org/jboss/test/tomcat/ejb/interfaces"
>
>"/home/azure/projects/software/hacks/tomcat-test/src/main/org/jboss/test/tomcat/ejb/bean"
>
>"/home/azure/projects/software/hacks/tomcat-test/src/main/org/jboss/test/tomcat/servlet")))
> '(jde-debugger (quote ("jdb")))
> '(jde-db-option-classpath (quote ("$JAVA_HOME/lib/tools.jar"
>"/usr/local/jboss/jboss/bin/run.jar" "/usr/local/jboss/jboss/lib/crimson.jar")))
> '(jde-db-option-vm-args (quote
>("-Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl"
>"-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl")))
> '(jde-run-application-class "org.jboss.Main"))
> -------------------------------------------------------------------
>
> My Emacs configuration is over 200kB, so I don't include it :)
> Although everything is possible, I very much doubt that something
> in there would magically cause JDE+1.4.0 combination to break this
> way. My JDE-specific configuration consists of only:
>
> -------------------------------------------------------------------
> (push '("\\.java$" . jde-mode) auto-mode-alist)
> (autoload 'jde-mode "jde" "Major mode for Java applications and applets." t)
>
> (setq jde-enable-abbrev-mode t)
> (setq jde-gen-comments nil)
>
> (defun se::java-mode-hook ()
> (local-set-key (kbd "ESC TAB") 'jde-complete-at-point-menu)
> (setq c-basic-offset 2))
>
> (add-hook 'java-mode-hook 'se::java-mode-hook)
> -------------------------------------------------------------------
>
> Now, if I try to use JDEbug instead of jdb, Emacs just hangs when I
> select "JDE -> Debug App". After the timeout (controlled by
> jde-bug-debugger-command-timeout I believe), I get
>
> -------------------------------------------------------------------
> No response to command 1. (process = 1; timeout = 30 sec.)
> -------------------------------------------------------------------
>
> to the *Messages* and *JDEbug* contains:
>
> -------------------------------------------------------------------
> cd /usr/local/jboss/jboss/bin
> /usr/local/j2sdk/bin/java -classpath
>/home/azure/share/emacs21/site-lisp/jde-2.2.9beta9.1/java/lib/jde.jar:/usr/local/j2sdk/lib/tools.jar
> jde.debugger.Main
>
>
> (jde-dbo-init-debug-session)
>
> JDE> -1 1 launch 1 -vmexec java -classpath
>/usr/local/j2sdk/lib/tools.jar:/usr/local/jboss/jboss/bin/run.jar:/usr/local/jboss/jboss/lib/crimson.jar
> -Djavax.xml.parsers.SAXParserFactory=org.apache.crimson.jaxp.SAXParserFactoryImpl
>-Djavax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl
> org.jboss.Main catalina
>
>
> (jde-dbo-message
> 1 "Launched VM Java Debug Interface (Reference Implementation)
> version 1.4
> Java Debug Wire Protocol (Reference Implementation) version 1.4
> JVM Debug Interface version 1.2
> JVM version 1.4.0 (Java HotSpot(TM) Client VM, mixed mode)")
>
>
> (jde-dbo-message 1 "initSIOConnect: starting standard I/O
> handshake.")
>
>
> (jde-dbo-message 1 "initSIOConnect: starting SIO connect thread.")
>
>
> (jde-dbo-command-result 1 37059)
>
>
> (jde-dbo-message
> 1 "Debugger waiting for Emacs to connect to app SIO port 37059.")
>
>
> (jde-dbo-event-set
> 1 "all"
> (list "Thread" 1 "main" "runnable" "suspended by debugger"
> (list)
> "VM has no information"
> "VM has no information")
> (list 'jde-dbo-vm-start-event))
>
>
> (jde-dbo-error 1 "Gave up waiting for Emacs to connect to SIO port:
> 37059")
> -------------------------------------------------------------------
>