-
Notifications
You must be signed in to change notification settings - Fork 344
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Java remote attach to debug not hitting breakpoints. #755
Comments
Anyone could help me out with this issue? |
@jkryanchou, thanks for reaching out. The remote capability of VS Code is different from remote debugging in IntelliJ. We would love to help but we are not able to reproduce the issue based on the materials provided in this thread. Could you please share the project with us? |
The repository was private. Is there any other data I could provide to help me out with this issue? |
@jkryanchou, could you share the command line arguments to launch your remote service? |
@testforstephen How could I print out the command line arguments which to launch the remote service In VSCode? Or you mean the launch.json configuration? |
To debug a remote Java program, it has two steps: java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=<debug-port> -cp <ClassPath> <ClassName> Step 2: Configuration launch.json to attach to the application. Currently if you're using attach debugging in VS Code, you must manually launch your service at first. Could you tell me the approach to launch your service? |
@testforstephen Here are the agentlib commandline args:
|
In the args, To solve your program, you need set |
@testforstephen OK, Thanks a lot. I will try it later. If any other issue exists . I would reply on this issue. |
@testforstephen I have changed the |
I'm also having a similar issue |
@testforstephen can you reproduce this? if no, then we need some help from @jkryanchou or @lherman-cs to reproduce it. |
@akaroml OK, I will post it later. |
I'm having the same issue and would like to get the java debugger working for vs code. Currently, I am able to remote debug using IntelliJ. The breakpoints are not hit and display as "Unverified Breakpoint" in source code. Created launch.json at project name directory. Operating System: MacOSX Catalina Command line arguments: Running debugger attaches to remote process. |
This explained the reason. Looks like your source code is not loaded correctly by vscode-java. @alturium Could you share a sample code for reproduce? |
@alturium - What is the contents of your launch.json? |
@omcfig launch.json configuration: Since debugging works for intellij, I'm going to take a guess that the the issue is loading and mapping the source code. It would imply that the debuggee process has the instrumented debugging information. Configuration: Build a maven project (pom.xml). Output to target directory. Project directory has: Process is apache running JSP servlet engine. There is a .war file. When I do a binary dump of the classes, I notice that the source is 'org/...'. Is there a use of sourcePaths to help the debugger map the source code to the debugged process? @testforstephen It will take some time to put together an example project. Has the java debugger been tested with remote apache debugging environment? Thank you for the help! Unless there is a an undocumented feature, or perhaps a way to use sourcePaths parameter, I'm afraid that this will take some effort to diagnose and may be a bug against the vscode-java-debug. |
I have the same problem. It does not attach to the remote application. I'm running with docker. On IntelliJ works fine! I wonder if is not the difference of Java versions between VSCode and the Application. |
@raphaelluchini What error did you see when it does not attach to the remote application? |
@testforstephen No Errors, just hanging, the timeout also seems it's not working, I set to 1000 ms and the debugger keeps trying to connect until I try many times to stop. |
I have the same problem too, it's occurring after a fresh update of windows and vscode. Before that it was working fine. |
I've resolved my issue with 'clean the Javalanguage server workspace' option on VsCode |
This issue has been closed automatically because it needs more information and has not had recent activity. Please reach out if you have or find the answers we need so that we can investigate further. |
I had this exact same problem, and this was the resolution for me too. |
I am facing similar problem but with jar file in the class path and the source code in another place outside the main project. See below for details: https://stackoverflow.com/q/75304937/4180447 Any help would be greatly appreciated. |
Having the same problem. None of the solutions mentioned above worked. |
The teams are in process to switch over to vscode but when I presented them with this issue they were shocked! Now they are considering staying in Eclipse. |
@bnheise @tarekahf To help us investigate the problem further, please create a new issue and describe how to reproduce it in detail. It would also be very helpful if you could share a sample project that demonstrates the issue. You can make a similar project with the same structure if your original one is private. |
@testforstephen it's going to be very hard to provide such details. But as soon as I'm able I'll let you know. |
I'm swamped at work now, but I'll see if I can't put together a minimal example later this week. |
While I'm getting an example together, I will provide some additional context.
{
"type": "java",
"name": "Debug (Attach)",
"request": "attach",
"hostName": "localhost",
"port": 5005,
}
|
One hypothesis: the version of java in the Docker container is java 21. The version of java running configured on JAVA_HOME in the host system is Java8, although Java21 is installed. Is it possible that this could be the cause? If so, is it possible to configure which version of Java the debug console is using? For the sake of other project dependencies in the system, the system JAVA_HOME needs to remain Java8. |
@bnheise The JDK version does not affect the debugging of your own application code, only the JDK code itself. One factor that could affect the breakpoint is whether the source code version matches the class running in the debuggee JVM. If your local source code differs from the remote one, or if you see an "Unverified Breakpoint" hint on the breakpoint line, the breakpoint is probably not set well. |
@testforstephen Thanks for the clarification. It is definitely some kind of bug then, because the code does match and the breakpoint is set correctly. |
Hi guys. I have a minimum example. I was able to reproduce the problem without using Docker at all. You can find the repository here. Steps to reproduce. Clone Repogh repo clone bnheise/java-debugger-breakpoint-failure Adjust Settings.jsonI included my {
"java.configuration.runtimes": [
{
"name": "JavaSE-21",
"path": "~/.local/share/rtx/installs/java/zulu-javafx-21.30.15"
}
],
"java.import.gradle.java.home": "~/.local/share/rtx/installs/java/zulu-javafx-21.30.15",
"java.compile.nullAnalysis.mode": "automatic",
} Set GRADLE_OPTS For DebuggingNote that the exact command below is not tested. I don't use export GRADLE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:5005" Apply BreakpointsOpen the file package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/")
public String index() {
System.out.println("TEST DEBUG");
System.out.println("TEST DEBUG 2");
return "Greetings from Spring Boot!";
}
} On Line 11, you'll see Start the Application./gradlew bootRun As the application boots, confirm that Attach DebuggerA launch configuration called Confirm that the debugger has connected (you should see the stepper menu appear at the top center of the vscode window. Trigger the HelloController EndpointOpen http://localhost:8080. Observe the console output:
If you check the debugger in vscode, you will also see that the debugger has not been triggered: the screen has not jumped to the location of the breakpoint, and the stepper options have not been activated. System DetailsOS: macOS Sonoma 14.1.2 |
I have a Weblogic project which I debug with no problems under IntelliJ. With VSCode I am able to break into Jersery controller methods, but not into EJB bean methods! |
I found a workaround:
The breakpoint will hit inside the method (not at the declaration). I don't know, but it works! |
[provide a description of the issue]
Environment
Steps To Reproduce
[step 1] Set remote debug configuration
[step 2] Run and Debug remote, and it shows that warning message, and not hitting the breakpoints set below.
[Warn - 11:25:04 AM] 2020-2-3 11:25:04 [Warn] The debugger and the debuggee are running in different versions of JVMs. You could see wrong source mapping results.
Debugger JVM version: 1.8.0_121
Debuggee JVM version: 1.8.0_102
[attach a sample project reproducing the error]
attach logs
Current Result
Not hitting the breakpoints.
Expected Result
Hit the breakpoints and could view the variables.
Additional Informations
I used the IDEA remote attach through the commands, and it works without problem. I wonder if any differences between IDEA and VSCode-java-debug remote attach commands?
IDEA Remote debug options
VSCode Java Debug remote attach configuration
The text was updated successfully, but these errors were encountered: