Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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
在Java中释放未对齐指针?_Java - Fatal编程技术网

在Java中释放未对齐指针?

在Java中释放未对齐指针?,java,Java,这在Objective-C中很容易找到,但在Java中,我认为这种事情是不可能的。我看到的错误是: java(7198,0x124a13000) malloc: *** error for object 0x1003109c1: Non-aligned pointer being freed *** set a breakpoint in malloc_error_break to debug 如何在Java中设置这种类型的断点?或者,我将如何追踪所讨论的对象?该内存地址不是哈希代码,对吗?您

这在Objective-C中很容易找到,但在Java中,我认为这种事情是不可能的。我看到的错误是:

java(7198,0x124a13000) malloc: *** error for object 0x1003109c1: Non-aligned pointer being freed
*** set a breakpoint in malloc_error_break to debug

如何在Java中设置这种类型的断点?或者,我将如何追踪所讨论的对象?该内存地址不是哈希代码,对吗?

您不需要在Java中调试此类内容,因为这似乎是JVM本身的一个bug,或者是某个恶意的本机库。

我认为您正在将Java编译为C,然后是二进制。你在用什么编译器?当您将Java代码编译成普通的Java字节码,并在JVM上运行时会发生什么?在Eclipse中,使用标准JVM时,所有这些都是100%的标准内容。可能是CoreMIDI驱动程序…Java中的所有引用都是以8字节的倍数对齐的,所以最低的三位总是0。如果最低位不为0,则表示引用已损坏。可以使用不安全类执行此操作,否则它必须位于JNI中。注意:如果在64位JVM中使用32位引用,则不会发生这种情况,因为它会删除最低的三位(因为它知道它将是000)这就是允许您使用32位引用拥有高达32 GB的堆的原因。基本上,sun.misc.Unsafe允许您执行大多数在Java中不应该执行的操作,但如果您希望进行低级别编程,这些操作非常有用。e、 g.以任何类型访问对象中的任何字段,例如向引用写入int。是的,这是一个流氓库:OSX上的CoreMIDI实现。切换到解决问题。所以,是的,Java内部没有什么需要修复的。