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	Mon May 10 08:59:43 2010
--- new/src/os/solaris/dtrace/libjvm_db.c	Mon May 10 08:59:42 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)) { ! fprintf(stderr, "\t scopeDesc_chain: (methodIdx > (oops_end - oops_beg)) !\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