I'm trying to use BridJ in a way that I'm not sure whether it is supported:

I have a 64 bit application. I get a byte array containing the memory of a 
32 bit application through a debugger interface.

I'd like to use BridJ to parse the content of this byte array as C 
datatypes. I do this by using 
Pointer.pointerToBytes().as(my_struct.class).get()
. This technique works in a 32 bit application. But in a 64 bit application 
it does not, because BridJ uses the word size of the host application (64 
bit) and I want to use the word size of the byte array (32 bit).

Can that be done? Is it possible to somehow switch the word size of BridJ 
manually, so that BridJ uses 32 bit words, even if it is run in a 64 bit 
application?

Longer example of what I'm trying to do

    byte[] objData = debugger.readMemory(remoteStructAddr, BridJ.sizeOf(
c_struct.class));
    c_struct s = Pointer.pointerToBytes(objData).as(c_struct.class).get();
    int structMem = s.member();

    byte[] namePtr = debugger.readMemory(removePtr + StructObject.
offsetOfField(new c_struct(), "name"), 4); 
    String name = debugger.readString(namePtr);

Some More Details

* I use JNAerator to generate the BridJ classes
* I've tied to use the JNAerator -arch flag, but it doesn't seem to do what 
I want.
* I don't use a native library together with BridJ, I just use BridJ to 
read byte arrays that I get with the debugger API.

-- 
You received this message because you are subscribed to the Google Groups 
"NativeLibs4Java" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nativelibs4java+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to