Java 工具集教程

jsadebugd.exe 作为调试服务器运行

jsadebugd.exe 是一个命令行工具,它用于附加到一个Java进程或核心文件,并作为调试服务器运行。这个命令特别用于与Java的远程调试功能配合,允许远程客户端(如jstack、jmap和jinfo等)连接到这个调试服务器,从而对Java进程进行调试和分析。

命令语法

连接到运行中的 Java 进程:

jsadebugd [options] <pid> [server-id]

连接到由 <executable> 生成的核心文件:

jsadebugd [options] <executable> <core> [server-id]

注意:server-id 是该调试服务器的可选唯一 ID,如果在同一台机器上运行多个调试服务器,则需要该 ID。

命令选项

该命令支持如下选项:

  • -h | -help   打印此帮助信息

参数说明:

  • pid:这是你想要附加调试的Java进程的进程ID(PID)。

  • executable:这是产生核心转储的Java可执行文件的路径。

  • core:这是你想要附加调试的核心文件的路径。

  • server-id:这是一个可选的唯一ID,当在同一台机器上启动多个调试服务器时,需要这个ID来区分不同的服务器。远程客户端需要使用这个ID来连接到特定的调试服务器。

命令示例

假设你有一个名为“com.hxstrive.springboot.SpringBootAppMain”的 Java 应用程序正在运行,其进程ID为 21108,并且你想要启动一个 jsadebugd 服务器来调试这个应用程序。你可以使用以下命令:

D:\share_dir\ShareDoc> jsadebugd 21108
Attaching to process ID 21108 and starting RMI services, please wait...
Debugger attached and RMI services started.

如果这是你在该机器上启动的第一个 jsadebugd 服务器,你不需要指定 server-id。但是,如果你已经启动了一个或多个 jsadebugd 服务器,你需要为新的服务器指定一个唯一的 server-id,例如:

D:\share_dir\ShareDoc> jsadebugd 21108 5555
Attaching to process ID 21108 and starting RMI services, please wait...
Debugger attached and RMI services started.

在这个例子中,5555 是新的调试服务器的ID。然后,你可以使用如 jstack、jmap 或 jinfo 等远程调试工具,通过指定这个 server-id 来连接到这个特定的 jsadebugd 服务器。如下:

C:\Users\Administrator> jinfo -flags 5555@192.168.1.2
Attaching to remote server 5555@192.168.1.2, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.45-b02
Non-default VM flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CICompilerCount=3 -XX:InitialHeapSize=264241152 -XX:+ManagementServer -XX:MaxHeapSize=4227858432 -XX:MaxNewSize=1409286144 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=88080384 -XX:OldSize=176160768 -XX:+PrintGC -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC
Command line:  -XX:TieredStopAtLevel=1 -Xverify:none -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dmanagement.endpoints.jmx.exposure.include=* -javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2023.1.1\lib\idea_rt.jar=58994:D:\Program Files\JetBrains\IntelliJ IDEA 2023.1.1\bin -Dfile.encoding=UTF-8

注意:jsadebugd.exe 是一个较为专业的调试工具,主要用于 Java 应用程序的远程调试和分析。在使用时,需要具备一定的 Java 调试经验和知识。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号