equal
deleted
inserted
replaced
439 n = get_num_threads(ph); |
439 n = get_num_threads(ph); |
440 print_debug("fill_java_threads called, num_of_thread = %d\n", n); |
440 print_debug("fill_java_threads called, num_of_thread = %d\n", n); |
441 for (i = 0; i < n; i++) { |
441 for (i = 0; i < n; i++) { |
442 if (!get_nth_lwp_regs(ph, i, ®s)) { |
442 if (!get_nth_lwp_regs(ph, i, ®s)) { |
443 print_debug("Could not get regs of thread %d, already set!\n", i); |
443 print_debug("Could not get regs of thread %d, already set!\n", i); |
|
444 (*env)->ReleaseLongArrayElements(env, thrinfos, (jlong*)cinfos, 0); |
444 return false; |
445 return false; |
445 } |
446 } |
446 for (j = 0; j < len; j += 3) { |
447 for (j = 0; j < len; j += 3) { |
447 lwpid_t uid = cinfos[j]; |
448 lwpid_t uid = cinfos[j]; |
448 uint64_t beg = cinfos[j + 1]; |
449 uint64_t beg = cinfos[j + 1]; |
517 regs[REG_INDEX(FS)] = gregs.r_fs; |
518 regs[REG_INDEX(FS)] = gregs.r_fs; |
518 regs[REG_INDEX(GS)] = gregs.r_gs; |
519 regs[REG_INDEX(GS)] = gregs.r_gs; |
519 regs[REG_INDEX(TRAPNO)] = gregs.r_trapno; |
520 regs[REG_INDEX(TRAPNO)] = gregs.r_trapno; |
520 regs[REG_INDEX(RFL)] = gregs.r_rflags; |
521 regs[REG_INDEX(RFL)] = gregs.r_rflags; |
521 |
522 |
|
523 (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT); |
522 #endif /* amd64 */ |
524 #endif /* amd64 */ |
523 (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT); |
|
524 return array; |
525 return array; |
525 } |
526 } |
526 |
527 |
527 /* |
528 /* |
528 * Lookup the thread_t that corresponds to the given thread_id. |
529 * Lookup the thread_t that corresponds to the given thread_id. |