Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用ASM读取java局部变量和操作数堆栈?_Java_Instrumentation_Callstack_Java Bytecode Asm - Fatal编程技术网

是否可以使用ASM读取java局部变量和操作数堆栈?

是否可以使用ASM读取java局部变量和操作数堆栈?,java,instrumentation,callstack,java-bytecode-asm,Java,Instrumentation,Callstack,Java Bytecode Asm,像eclipse调试器一样,是否可以使用ASM/-javaagent库读取java局部变量和操作数堆栈?我不确定eclipse是使用java代理还是本机代理,我认为它使用本机代理 我希望在异常发生时读取堆栈所有帧中的变量及其值。我知道可以使用JVMTI使用-agentlib/-agentpath本机库来完成。但是,我想知道,如果使用ASM或java代理库,可以使用“代理”,可以使用任何支持C语言调用约定和C或C++定义的本机语言编写。“可能过时,也可能不过时。”玛格丽特·布鲁姆,谢谢你的回复。对

像eclipse调试器一样,是否可以使用ASM/-javaagent库读取java局部变量和操作数堆栈?我不确定eclipse是使用java代理还是本机代理,我认为它使用本机代理


我希望在异常发生时读取堆栈所有帧中的变量及其值。我知道可以使用JVMTI使用-agentlib/-agentpath本机库来完成。但是,我想知道,如果使用ASM或java代理库,可以使用“代理”,可以使用任何支持C语言调用约定和C或C++定义的本机语言编写。“可能过时,也可能不过时。”玛格丽特·布鲁姆,谢谢你的回复。对。我可以使用JVMTI用C编写本机库。实际上我已经写了一篇。然而,我想知道,如果同样的事情可以实现使用ASM?我已经有一个使用ASM开发的java代理,另一个使用JVMTI的本机代理会创建额外的依赖关系。因此,如果可能的话,我也希望使用ASM在同一个java代理中实现这一点。当然,您必须遵守ABI,并且您没有类型,因此必须通过向结构的基指针添加偏移量来访问结构的字段。“也许,分解一种测试试剂会给我们一些启示。”玛格丽特·布鲁姆,对不起。我实际上指的是ObjectWeb ASM,一个用于字节码修改/插装和分析的Java库。ASM是一个字节码处理库。它与处理堆栈上的运行时值无关。Java代理可以使用,很容易看出它没有提供与JVMTI相同的特性。Eclipse的调试功能是另一回事,与代理不同,Eclipse在不同于检查的应用程序中运行不同的JVM。“代理可以用支持C语言调用约定和C或C++定义的任何本机语言编写。”“可能过时,也可能不过时。”玛格丽特·布鲁姆,谢谢你的回复。对。我可以使用JVMTI用C编写本机库。实际上我已经写了一篇。然而,我想知道,如果同样的事情可以实现使用ASM?我已经有一个使用ASM开发的java代理,另一个使用JVMTI的本机代理会创建额外的依赖关系。因此,如果可能的话,我也希望使用ASM在同一个java代理中实现这一点。当然,您必须遵守ABI,并且您没有类型,因此必须通过向结构的基指针添加偏移量来访问结构的字段。“也许,分解一种测试试剂会给我们一些启示。”玛格丽特·布鲁姆,对不起。我实际上指的是ObjectWeb ASM,一个用于字节码修改/插装和分析的Java库。ASM是一个字节码处理库。它与处理堆栈上的运行时值无关。Java代理可以使用,很容易看出它没有提供与JVMTI相同的特性。Eclipse的调试功能是另一回事,因为与代理不同,Eclipse运行在与所检查的应用程序不同的JVM中。