我试图jstack
通过浏览 jstack 的在线文档来理解 java 命令,其中说:
jstack 为给定的 Java 进程或核心文件或远程调试服务器打印 Java 线程的 Java 堆栈跟踪。对于每个 Java 框架,将打印完整的类名、方法名、'bci'(字节码索引)和行号(如果有)。使用 -m 选项,jstack 会打印所有线程的 Java 和本机帧以及“pc”(程序计数器)。对于每个原生帧,如果可用,将打印最接近“pc”的原生符号。C++ 重整名称不会被重整。要对 C++ 名称进行解码,可以将此命令的输出通过管道传输到 c++filt。
我有一些疑问,请帮助我理解这个命令。
1)核心文件只是我要打印堆栈跟踪的文件的名称还是不同?什么是远程调试服务器,我们如何使用或配置它?
2) 在这种情况下,什么是 Java 框架,什么是线程的本机框架?
3)我之前在学习微处理器时了解了程序计数器,但是Java的概念应用程序也相同吗?
4) 最接近 pc 的本地符号是什么意思?还有如何在 Java 中使用 c++,我在学习 Java 时从未接触过 c++。
请澄清,提前谢谢。