src/os/solaris/dtrace/libjvm_db.c
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/os/solaris/dtrace/libjvm_db.c Tue May 18 03:20:48 2010
--- new/src/os/solaris/dtrace/libjvm_db.c Tue May 18 03:20:47 2010
*** 1,7 ****
--- 1,7 ----
/*
! * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
! * Copyright 2003-2010 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 128,138 ****
--- 128,138 ----
int32_t instrs_end;
int32_t deopt_beg; /* _deoptimize_offset */
int32_t scopes_data_beg; /* _scopes_data_offset */
int32_t scopes_data_end;
int32_t oops_beg; /* _oops_offset */
! int32_t oops_len; /* _oops_length */
! int32_t oops_end;
int32_t scopes_pcs_beg; /* _scopes_pcs_offset */
int32_t scopes_pcs_end;
int vf_cnt;
Vframe_t vframes[MAX_VFRAMES_CNT];
*** 595,607 ****
--- 595,607 ----
CHECK_FAIL(err);
err = ps_pread(J->P, nm + OFFSET_nmethod_orig_pc_offset, &N->orig_pc_offset, SZ32);
CHECK_FAIL(err);
/* Oops */
! err = ps_pread(J->P, nm + OFFSET_CodeBlob_oops_offset, &N->oops_beg, SZ32);
! err = ps_pread(J->P, nm + OFFSET_nmethod_oops_offset, &N->oops_beg, SZ32);
CHECK_FAIL(err);
! err = ps_pread(J->P, nm + OFFSET_CodeBlob_oops_length, &N->oops_len, SZ32);
! err = ps_pread(J->P, nm + OFFSET_nmethod_scopes_data_offset, &N->oops_end, SZ32);
CHECK_FAIL(err);
/* scopes_pcs */
err = ps_pread(J->P, nm + OFFSET_nmethod_scopes_pcs_offset, &N->scopes_pcs_beg, SZ32);
CHECK_FAIL(err);
*** 622,633 ****
--- 622,633 ----
N->deopt_beg);
fprintf(stderr, "\t nmethod_info: orig_pc_offset: %#x \n",
N->orig_pc_offset);
! fprintf(stderr, "\t nmethod_info: oops_beg: %#x, oops_len: %#x\n",
! N->oops_beg, N->oops_len);
! fprintf(stderr, "\t nmethod_info: oops_beg: %#x, oops_end: %#x\n",
! N->oops_beg, N->oops_end);
fprintf(stderr, "\t nmethod_info: scopes_data_beg: %#x, scopes_data_end: %#x\n",
N->scopes_data_beg, N->scopes_data_end);
fprintf(stderr, "\t nmethod_info: scopes_pcs_beg: %#x, scopes_pcs_end: %#x\n",
*** 957,968 ****
--- 957,968 ----
}
err = scope_desc_at(N, decode_offset, vf);
CHECK_FAIL(err);
! if (vf->methodIdx > N->oops_len) {
! fprintf(stderr, "\t scopeDesc_chain: (methodIdx > oops_len) !\n");
! if (vf->methodIdx > ((N->oops_end - N->oops_beg) / POINTER_SIZE)) {
! fprintf(stderr, "\t scopeDesc_chain: (methodIdx > oops length) !\n");
return -1;
}
err = read_pointer(N->J, N->nm + N->oops_beg + (vf->methodIdx-1)*POINTER_SIZE,
&vf->methodOop);
CHECK_FAIL(err);
src/os/solaris/dtrace/libjvm_db.c
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File