gpt4 book ai didi

java - 如何获取JVM原生级别函数的符号名?

转载 作者:行者123 更新时间:2023-11-30 03:24:21 25 4
gpt4 key购买 nike

我想用gdb设置断点,但我不知道该方法对应的符号。有办法做到这一点吗?

最佳答案

我认为评论指出的 JNI 规范是执行此操作的原则方法。

但是,从 gdb 中交互地找到该函数也不是太难。您需要知道的只是方法的名称(我们称之为“hello”),并且 JNI 名称始终以“Java_”开头。然后你可以向 gdb 询问所有匹配的函数:

(gdb) info function ^Java_.*hello

这将找到该名称的所有函数。

只要您的方法具有普通名称或驼峰式名称,此方法就有效。它不适用于嵌入的“_”或非 ASCII 字符。为此,您必须阅读一下规范。

现在,如果 gdb 还无法看到该函数,则这将不起作用 - 例如,如果 JNI .so 尚未加载。您可以通过运行到加载点或在相关库上使用 nm 等来完成此操作。

关于java - 如何获取JVM原生级别函数的符号名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30618670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com