2012-02-17 12 views
6

Esto sería fácil de rastrear en Objective-C, pero en Java pensé que este tipo de cosas era imposible. El error que estoy viendo es:Puntero no alineado liberado, en Java?

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

¿Cómo establecería un punto de interrupción de este tipo en Java? O bien, ¿cómo rastrearía el objeto en cuestión? Esa dirección de memoria NO es el código hash, ¿verdad?

+0

Supongo que está compilando Java a C y luego a un archivo binario. Qué compilador estas usando? ¿Qué sucede cuando compilas tu código Java en bytecode ordinario de Java y lo ejecutas en una JVM? –

+0

Es todo el material 100% estándar dentro de Eclipse utilizando la JVM estándar. Probablemente sean los controladores CoreMIDI ... –

+0

Gracias @AlexD, lo rastreé. Era una biblioteca nativa (suministrada por Apple, irónicamente/tristemente). –

Respuesta

5

No depura este tipo de cosas en Java en sí, ya que esto parece ser un error en la propia JVM o en alguna biblioteca nativa deshonesta.

+0

Sí, es una biblioteca deshonesta: la implementación de CoreMIDI en OSX. Cambiar a http://www.humatic.de/htools/mmj.htm soluciona el problema. Entonces, sí, nada que arreglar desde Java. –

Cuestiones relacionadas