在.class文件Intellij中设置断点

时间:2015-11-08 16:24:31

标签: java debugging intellij-idea breakpoints

我试图调试this问题中提到的代码,更具体地说,是以下代码中的最后一行:

this

转到 .store()的声明(使用Ctrl + B)会打开一个文件 KeyStore.java

        // client credentials
        KeyStore keyStore = null;

        keyStore = KeyStore.getInstance("PKCS12", "BC");
        keyStore.load(null, null);
        keyStore.setKeyEntry(CryptographyUtils.CLIENT_NAME, endCredential.getPrivateKey(), CryptographyUtils.CLIENT_PASSWORD,
                new Certificate[]{endCredential.getCertificate(), interCredential.getCertificate(), rootCredential.getCertificate()});
        keyStore.store(new FileOutputStream(CryptographyUtils.CLIENT_NAME + ".p12"), CryptographyUtils.CLIENT_PASSWORD);

最后一次调用 .engineStore()实际上将证书写入输出流。转到方法的实现(Ctrl + Alt + B),显示以下选项:

store keys

导入的包含我代码中的方法的包来自:

public final void store(OutputStream stream, char[] password)
        throws KeyStoreException, IOException, NoSuchAlgorithmException,
            CertificateException
    {
        if (!initialized) {
            throw new KeyStoreException("Uninitialized keystore");
        }
        keyStoreSpi.engineStore(stream, password);
    }

我在 KeyStore.java 中添加了一个断点并且已到达。但是,放在反编译的.class文件中的断点(如图中所示的那些)不是。

我如何调试 .engineStore()方法?

1 个答案:

答案 0 :(得分:1)

如果要调试,则需要附加public class Palindromorizor{ public static void main (String[] args){ String inputString, limit; int n, p, numLim, num = 0; boolean isPali; limit = JOptionPane.showInputDialog("What is your limit?"); numLim = Integer.parseInt(limit); while(num < numLim){ isPali = isPalindrome(num); if(isPali == true){ System.out.print(num + " "); ++num; } else{ ++num; } } } public static boolean isPalindrome(int num){ String strNum; int n = 0; int p; boolean isPali = true; strNum = "" + num; p = strNum.length(); //strNum.substring(p - 1, p) + " " + p + " " + n + " " + strNum + " " + isPali); while(p > n){ if(strNum.substring(n, n + 1) == strNum.substring(p - 1, p) && (p <= n)){ isPali = true; } else if(strNum.substring(n, n + 1) == strNum.substring(p - 1, p) && (p > n)){ ++n; --p; } else{ isPali = false; p = n; } } return isPali; } } 。您无法调试source files个文件。

See this post了解如何将源代码添加到库配置中。