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: