1.1 --- a/src/os/solaris/dtrace/libjvm_db.c Tue Jun 01 11:48:33 2010 -0700 1.2 +++ b/src/os/solaris/dtrace/libjvm_db.c Wed Jun 02 22:45:42 2010 -0700 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -130,7 +130,7 @@ 1.11 int32_t scopes_data_beg; /* _scopes_data_offset */ 1.12 int32_t scopes_data_end; 1.13 int32_t oops_beg; /* _oops_offset */ 1.14 - int32_t oops_len; /* _oops_length */ 1.15 + int32_t oops_end; 1.16 int32_t scopes_pcs_beg; /* _scopes_pcs_offset */ 1.17 int32_t scopes_pcs_end; 1.18 1.19 @@ -597,9 +597,9 @@ 1.20 CHECK_FAIL(err); 1.21 1.22 /* Oops */ 1.23 - err = ps_pread(J->P, nm + OFFSET_CodeBlob_oops_offset, &N->oops_beg, SZ32); 1.24 + err = ps_pread(J->P, nm + OFFSET_nmethod_oops_offset, &N->oops_beg, SZ32); 1.25 CHECK_FAIL(err); 1.26 - err = ps_pread(J->P, nm + OFFSET_CodeBlob_oops_length, &N->oops_len, SZ32); 1.27 + err = ps_pread(J->P, nm + OFFSET_nmethod_scopes_data_offset, &N->oops_end, SZ32); 1.28 CHECK_FAIL(err); 1.29 1.30 /* scopes_pcs */ 1.31 @@ -624,8 +624,8 @@ 1.32 fprintf(stderr, "\t nmethod_info: orig_pc_offset: %#x \n", 1.33 N->orig_pc_offset); 1.34 1.35 - fprintf(stderr, "\t nmethod_info: oops_beg: %#x, oops_len: %#x\n", 1.36 - N->oops_beg, N->oops_len); 1.37 + fprintf(stderr, "\t nmethod_info: oops_beg: %#x, oops_end: %#x\n", 1.38 + N->oops_beg, N->oops_end); 1.39 1.40 fprintf(stderr, "\t nmethod_info: scopes_data_beg: %#x, scopes_data_end: %#x\n", 1.41 N->scopes_data_beg, N->scopes_data_end); 1.42 @@ -959,8 +959,8 @@ 1.43 err = scope_desc_at(N, decode_offset, vf); 1.44 CHECK_FAIL(err); 1.45 1.46 - if (vf->methodIdx > N->oops_len) { 1.47 - fprintf(stderr, "\t scopeDesc_chain: (methodIdx > oops_len) !\n"); 1.48 + if (vf->methodIdx > ((N->oops_end - N->oops_beg) / POINTER_SIZE)) { 1.49 + fprintf(stderr, "\t scopeDesc_chain: (methodIdx > oops length) !\n"); 1.50 return -1; 1.51 } 1.52 err = read_pointer(N->J, N->nm + N->oops_beg + (vf->methodIdx-1)*POINTER_SIZE,