equal
deleted
inserted
replaced
278 err = ps_pdread(get_proc_handle(env, this_obj), (psaddr_t) (uintptr_t)addr, bufPtr, numBytes); |
278 err = ps_pdread(get_proc_handle(env, this_obj), (psaddr_t) (uintptr_t)addr, bufPtr, numBytes); |
279 (*env)->ReleaseByteArrayElements(env, array, bufPtr, 0); |
279 (*env)->ReleaseByteArrayElements(env, array, bufPtr, 0); |
280 return (err == PS_OK)? array : 0; |
280 return (err == PS_OK)? array : 0; |
281 } |
281 } |
282 |
282 |
283 #if defined(i386) || defined(ia64) || defined(amd64) || defined(sparc) || defined(sparcv9) |
283 #if defined(i386) || defined(amd64) || defined(sparc) || defined(sparcv9) |
284 JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_getThreadIntegerRegisterSet0 |
284 JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_getThreadIntegerRegisterSet0 |
285 (JNIEnv *env, jobject this_obj, jint lwp_id) { |
285 (JNIEnv *env, jobject this_obj, jint lwp_id) { |
286 |
286 |
287 struct user_regs_struct gregs; |
287 struct user_regs_struct gregs; |
288 jboolean isCopy; |
288 jboolean isCopy; |
296 } |
296 } |
297 |
297 |
298 #undef NPRGREG |
298 #undef NPRGREG |
299 #ifdef i386 |
299 #ifdef i386 |
300 #define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG |
300 #define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG |
301 #endif |
|
302 #ifdef ia64 |
|
303 #define NPRGREG IA64_REG_COUNT |
|
304 #endif |
301 #endif |
305 #ifdef amd64 |
302 #ifdef amd64 |
306 #define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG |
303 #define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG |
307 #endif |
304 #endif |
308 #if defined(sparc) || defined(sparcv9) |
305 #if defined(sparc) || defined(sparcv9) |
333 regs[REG_INDEX(PC)] = (uintptr_t) gregs.eip; |
330 regs[REG_INDEX(PC)] = (uintptr_t) gregs.eip; |
334 regs[REG_INDEX(CS)] = (uintptr_t) gregs.xcs; |
331 regs[REG_INDEX(CS)] = (uintptr_t) gregs.xcs; |
335 regs[REG_INDEX(SS)] = (uintptr_t) gregs.xss; |
332 regs[REG_INDEX(SS)] = (uintptr_t) gregs.xss; |
336 |
333 |
337 #endif /* i386 */ |
334 #endif /* i386 */ |
338 |
|
339 #if ia64 |
|
340 regs = (*env)->GetLongArrayElements(env, array, &isCopy); |
|
341 for (i = 0; i < NPRGREG; i++ ) { |
|
342 regs[i] = 0xDEADDEAD; |
|
343 } |
|
344 #endif /* ia64 */ |
|
345 |
335 |
346 #ifdef amd64 |
336 #ifdef amd64 |
347 #define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg |
337 #define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg |
348 |
338 |
349 regs[REG_INDEX(R15)] = gregs.r15; |
339 regs[REG_INDEX(R15)] = gregs.r15; |