src/os/bsd/dtrace/jhelper.d

Print this page

        

*** 41,51 **** #define pointer uint32_t #endif extern pointer __JvmOffsets; ! extern pointer __1cJCodeCacheF_heap_; extern pointer __1cIUniverseO_collectedHeap_; extern pointer __1cHnmethodG__vtbl_; extern pointer __1cNMethodG__vtbl_; extern pointer __1cKBufferBlobG__vtbl_; --- 41,54 ---- #define pointer uint32_t #endif extern pointer __JvmOffsets; ! extern pointer __1cJCodeCacheQ_heap_non_method_; ! extern pointer __1cJCodeCacheS_heap_non_profiled_; ! extern pointer __1cJCodeCacheO_heap_profiled_;; ! extern pointer __1cIUniverseO_collectedHeap_; extern pointer __1cHnmethodG__vtbl_; extern pointer __1cNMethodG__vtbl_; extern pointer __1cKBufferBlobG__vtbl_;
*** 150,176 **** this->methodPtr = copyin_ptr(arg1 + OFFSET_interpreter_frame_method); #else #error "Don't know architecture" #endif ! this->CodeCache_heap_address = copyin_ptr(&``__1cJCodeCacheF_heap_); ! /* Reading volatile values */ ! this->CodeCache_low = copyin_ptr(this->CodeCache_heap_address + OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low); ! this->CodeCache_high = copyin_ptr(this->CodeCache_heap_address + OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high); ! this->CodeCache_segmap_low = copyin_ptr(this->CodeCache_heap_address + OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_low); ! this->CodeCache_segmap_high = copyin_ptr(this->CodeCache_heap_address + OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_high); this->CodeHeap_log2_segment_size = copyin_uint32( ! this->CodeCache_heap_address + OFFSET_CodeHeap_log2_segment_size); this->Method_vtbl = (pointer) &``__1cNMethodG__vtbl_; /* * Get Java heap bounds --- 153,215 ---- this->methodPtr = copyin_ptr(arg1 + OFFSET_interpreter_frame_method); #else #error "Don't know architecture" #endif ! /* ! * Non-method heap ! */ ! this->CodeCache_heap0_address = copyin_ptr(&``__1cJCodeCacheQ_heap_non_method_); ! ! this->Heap0_low = copyin_ptr(this->CodeCache_heap0_address + ! OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low); ! ! this->Heap0_high = copyin_ptr(this->CodeCache_heap0_address + ! OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high); ! ! this->Heap0_segmap_low = copyin_ptr(this->CodeCache_heap0_address + ! OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_low); ! ! this->Heap0_segmap_high = copyin_ptr(this->CodeCache_heap0_address + ! OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_high); ! ! /* ! * Non profiled heap ! */ ! this->CodeCache_heap1_address = copyin_ptr(&``__1cJCodeCacheS_heap_non_profiled_); ! ! this->Heap1_low = copyin_ptr(this->CodeCache_heap1_address + ! OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low); ! ! this->Heap1_high = copyin_ptr(this->CodeCache_heap1_address + ! OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high); ! ! this->Heap1_segmap_low = copyin_ptr(this->CodeCache_heap1_address + ! OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_low); ! this->Heap1_segmap_high = copyin_ptr(this->CodeCache_heap1_address + ! OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_high); ! ! /* ! * Profiled heap ! */ ! this->CodeCache_heap2_address = copyin_ptr(&``__1cJCodeCacheO_heap_profiled_); ! ! this->Heap2_low = copyin_ptr(this->CodeCache_heap2_address + OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_low); ! this->Heap2_high = copyin_ptr(this->CodeCache_heap2_address + OFFSET_CodeHeap_memory + OFFSET_VirtualSpace_high); ! this->Heap2_segmap_low = copyin_ptr(this->CodeCache_heap2_address + OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_low); ! this->Heap2_segmap_high = copyin_ptr(this->CodeCache_heap2_address + OFFSET_CodeHeap_segmap + OFFSET_VirtualSpace_high); this->CodeHeap_log2_segment_size = copyin_uint32( ! this->CodeCache_heap0_address + OFFSET_CodeHeap_log2_segment_size); this->Method_vtbl = (pointer) &``__1cNMethodG__vtbl_; /* * Get Java heap bounds
*** 187,207 **** this->heap_end = this->heap_start + this->heap_size; } dtrace:helper:ustack: /!this->done && ! this->CodeCache_low <= this->pc && this->pc < this->CodeCache_high/ { MARK_LINE; this->codecache = 1; /* ! * Find start. */ ! this->segment = (this->pc - this->CodeCache_low) >> this->CodeHeap_log2_segment_size; ! this->block = this->CodeCache_segmap_low; this->tag = copyin_uchar(this->block + this->segment); "second"; } dtrace:helper:ustack: --- 226,283 ---- this->heap_end = this->heap_start + this->heap_size; } dtrace:helper:ustack: /!this->done && ! this->Heap0_low <= this->pc && this->pc < this->Heap0_high/ ! { ! MARK_LINE; ! this->codecache = 1; ! this->CodeCache_low = this->Heap0_low; ! ! /* ! * Find start in non-method heap. ! */ ! this->segment = (this->pc - this->Heap0_low) >> ! this->CodeHeap_log2_segment_size; ! this->block = this->Heap0_segmap_low; ! this->tag = copyin_uchar(this->block + this->segment); ! "second"; ! } ! ! dtrace:helper:ustack: ! /!this->done && ! this->Heap1_low <= this->pc && this->pc < this->Heap1_high/ ! { ! MARK_LINE; ! this->codecache = 1; ! this->CodeCache_low = this->Heap1_low; ! ! /* ! * Find start in non profiled heap. ! */ ! this->segment = (this->pc - this->Heap1_low) >> ! this->CodeHeap_log2_segment_size; ! this->block = this->Heap1_segmap_low; ! this->tag = copyin_uchar(this->block + this->segment); ! "second"; ! } ! ! dtrace:helper:ustack: ! /!this->done && ! this->Heap2_low <= this->pc && this->pc < this->Heap2_high/ { MARK_LINE; this->codecache = 1; + this->CodeCache_low = this->Heap2_low; /* ! * Find start in profiled heap. */ ! this->segment = (this->pc - this->Heap2_low) >> this->CodeHeap_log2_segment_size; ! this->block = this->Heap2_segmap_low; this->tag = copyin_uchar(this->block + this->segment); "second"; } dtrace:helper:ustack: