【问题标题】:how to start SwDbgSrv.exe in windows 7如何在 Windows 7 中启动 SwDbgSrv.exe
【发布时间】:2012-06-02 17:43:33
【问题描述】:

想分析烫发内容。因此,尝试使用该实用程序打印正在运行的 JVM 的字符串文字池(实用程序可用 here,来自 How to analyze PermGen contents?

但是我收到了这个错误:

正在附加到进程 ID 8980,请稍候...附加到错误 进程:尝试连接调试服务器时超时(请 启动 SwDbgSrv.exe)。

知道如何在 Windows 7 中启动 SwDbgSrv.exe 吗?

【问题讨论】:

    标签: java windows permgen


    【解决方案1】:

    所以我在尝试使用 dumpclass.jar 时也遇到了这个问题,这也给了我这个错误,我认为这是因为你的 PrintStringTable 和 DumpClass 都依赖于相同的底层 jar/tool/system/framework/whatever,称为 sa-jdi.jar

    它是做什么的,我不知道,它的一个功能是花费我一生的时间来弄清楚如何安装......

    无论如何,在阅读完所有 2(!) StackOverflow 问题后,我可以告诉你,与 Java 1.6 SDK 一起分发的版本(不是 JRE,它没有随 JRE 一起提供 - 哦,你还不知道那,为什么?)依赖于这个叫做SwDbgSrv.exe的东西,我不知道那是什么,但你只需要知道随java 1.7 sdk(同样是SDK而不是JRE)分发的版本不使用@ 987654327@.

    那么最终这一切意味着什么?好吧,这意味着如果您通过谷歌搜索获得 sa-jdi.jar,那么您将登陆此站点:http://www.java2s.com/Code/Jar/s/Downloadsajdijar.htm,其中包含需要 SwDbgSrv.exe 的 jar 的 1.6 版本

    这意味着,如果您使用的工具依赖于 sa-jdi.jar,那么您肯定希望获得不使用 SwDbgSrv.exe 的工具,这意味着使用 java 1.7 sdk,而不是 Java 1.6 JRE/SDK,因为1.7 sdk自带的sa-jdi.jar版本没有使用SwDbgSrv.exe,是捆绑的!它将特别位于java\jdk1.7.0_80\lib\ 文件夹中 - 至少在 Windows 上。一定要确保应用程序


    那么如何解决这个问题:下载 java 1.7 sdk 并使用捆绑的 sa-jdi.jar。它不需要SwDbgSrv.exe

    不要从随机网站下载随机的sa-jdi.jar


    我想这在技术上是一个非答案,因为我不知道如何在 Windows 7 中启动 SwDbgSrv.exe :/

    【讨论】:

      【解决方案2】:

      您可以通过运行 jsadebugd 将调试守护程序附加到您的 Java 程序。然后您可以运行 HotSpot Serviceability Agent GUI:

      java -cp %JAVA_HOME%\lib\sa-jdi.jar sun.jvm.hotspot.HSDB
      

      和文件 -> 连接到调试服务器 -> localhost。虽然这不是所有字符串文字的编程转储,但您将能够探索有关您的进程的更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-12
        • 1970-01-01
        • 1970-01-01
        • 2023-04-05
        • 2011-05-17
        • 2011-11-25
        • 1970-01-01
        相关资源
        最近更新 更多