94
95 dtrace:helper:ustack:
96 /!init_done && !this->done/
97 {
98 MARK_LINE;
99
100 copyin_offset(POINTER_SIZE);
101 copyin_offset(COMPILER);
102 copyin_offset(OFFSET_CollectedHeap_reserved);
103 copyin_offset(OFFSET_MemRegion_start);
104 copyin_offset(OFFSET_MemRegion_word_size);
105 copyin_offset(SIZE_HeapWord);
106
107 copyin_offset(OFFSET_interpreter_frame_method);
108 copyin_offset(OFFSET_Klass_name);
109 copyin_offset(OFFSET_ConstantPool_pool_holder);
110
111 copyin_offset(OFFSET_HeapBlockHeader_used);
112 copyin_offset(OFFSET_oopDesc_metadata);
113
114 copyin_offset(OFFSET_Symbol_length);
115 copyin_offset(OFFSET_Symbol_body);
116
117 copyin_offset(OFFSET_Method_constMethod);
118 copyin_offset(OFFSET_ConstMethod_constants);
119 copyin_offset(OFFSET_ConstMethod_name_index);
120 copyin_offset(OFFSET_ConstMethod_signature_index);
121
122 copyin_offset(OFFSET_CodeHeap_memory);
123 copyin_offset(OFFSET_CodeHeap_segmap);
124 copyin_offset(OFFSET_CodeHeap_log2_segment_size);
125
126 copyin_offset(OFFSET_GrowableArray_CodeHeap_data);
127 copyin_offset(OFFSET_GrowableArray_CodeHeap_len);
128
129 copyin_offset(OFFSET_VirtualSpace_low);
130 copyin_offset(OFFSET_VirtualSpace_high);
131
132 copyin_offset(OFFSET_CodeBlob_name);
133
134 copyin_offset(OFFSET_nmethod_method);
446 /!this->done && this->isMethod/
447 {
448 MARK_LINE;
449 this->constMethod = copyin_ptr(this->methodPtr +
450 OFFSET_Method_constMethod);
451
452 this->nameIndex = copyin_uint16(this->constMethod +
453 OFFSET_ConstMethod_name_index);
454
455 this->signatureIndex = copyin_uint16(this->constMethod +
456 OFFSET_ConstMethod_signature_index);
457
458 this->constantPool = copyin_ptr(this->constMethod +
459 OFFSET_ConstMethod_constants);
460
461 this->nameSymbol = copyin_ptr(this->constantPool +
462 this->nameIndex * sizeof (pointer) + SIZE_ConstantPool);
463 /* The symbol is a CPSlot and has lower bit set to indicate metadata */
464 this->nameSymbol &= (~1); /* remove metadata lsb */
465
466 this->nameSymbolLength = copyin_uint16(this->nameSymbol +
467 OFFSET_Symbol_length);
468
469 this->signatureSymbol = copyin_ptr(this->constantPool +
470 this->signatureIndex * sizeof (pointer) + SIZE_ConstantPool);
471 this->signatureSymbol &= (~1); /* remove metadata lsb */
472
473 this->signatureSymbolLength = copyin_uint16(this->signatureSymbol +
474 OFFSET_Symbol_length);
475
476 this->klassPtr = copyin_ptr(this->constantPool +
477 OFFSET_ConstantPool_pool_holder);
478
479 this->klassSymbol = copyin_ptr(this->klassPtr +
480 OFFSET_Klass_name);
481
482 this->klassSymbolLength = copyin_uint16(this->klassSymbol +
483 OFFSET_Symbol_length);
484
485 /*
486 * Enough for three strings, plus the '.', plus the trailing '\0'.
487 */
488 this->result = (char *) alloca(this->klassSymbolLength +
489 this->nameSymbolLength +
490 this->signatureSymbolLength + 2 + 1);
491
492 copyinto(this->klassSymbol + OFFSET_Symbol_body,
493 this->klassSymbolLength, this->result);
494
495 /*
496 * Add the '.' between the class and the name.
497 */
498 this->result[this->klassSymbolLength] = '.';
499
500 copyinto(this->nameSymbol + OFFSET_Symbol_body,
501 this->nameSymbolLength,
502 this->result + this->klassSymbolLength + 1);
503
|
94
95 dtrace:helper:ustack:
96 /!init_done && !this->done/
97 {
98 MARK_LINE;
99
100 copyin_offset(POINTER_SIZE);
101 copyin_offset(COMPILER);
102 copyin_offset(OFFSET_CollectedHeap_reserved);
103 copyin_offset(OFFSET_MemRegion_start);
104 copyin_offset(OFFSET_MemRegion_word_size);
105 copyin_offset(SIZE_HeapWord);
106
107 copyin_offset(OFFSET_interpreter_frame_method);
108 copyin_offset(OFFSET_Klass_name);
109 copyin_offset(OFFSET_ConstantPool_pool_holder);
110
111 copyin_offset(OFFSET_HeapBlockHeader_used);
112 copyin_offset(OFFSET_oopDesc_metadata);
113
114 copyin_offset(OFFSET_Symbol_length_and_refcount);
115 copyin_offset(OFFSET_Symbol_body);
116
117 copyin_offset(OFFSET_Method_constMethod);
118 copyin_offset(OFFSET_ConstMethod_constants);
119 copyin_offset(OFFSET_ConstMethod_name_index);
120 copyin_offset(OFFSET_ConstMethod_signature_index);
121
122 copyin_offset(OFFSET_CodeHeap_memory);
123 copyin_offset(OFFSET_CodeHeap_segmap);
124 copyin_offset(OFFSET_CodeHeap_log2_segment_size);
125
126 copyin_offset(OFFSET_GrowableArray_CodeHeap_data);
127 copyin_offset(OFFSET_GrowableArray_CodeHeap_len);
128
129 copyin_offset(OFFSET_VirtualSpace_low);
130 copyin_offset(OFFSET_VirtualSpace_high);
131
132 copyin_offset(OFFSET_CodeBlob_name);
133
134 copyin_offset(OFFSET_nmethod_method);
446 /!this->done && this->isMethod/
447 {
448 MARK_LINE;
449 this->constMethod = copyin_ptr(this->methodPtr +
450 OFFSET_Method_constMethod);
451
452 this->nameIndex = copyin_uint16(this->constMethod +
453 OFFSET_ConstMethod_name_index);
454
455 this->signatureIndex = copyin_uint16(this->constMethod +
456 OFFSET_ConstMethod_signature_index);
457
458 this->constantPool = copyin_ptr(this->constMethod +
459 OFFSET_ConstMethod_constants);
460
461 this->nameSymbol = copyin_ptr(this->constantPool +
462 this->nameIndex * sizeof (pointer) + SIZE_ConstantPool);
463 /* The symbol is a CPSlot and has lower bit set to indicate metadata */
464 this->nameSymbol &= (~1); /* remove metadata lsb */
465
466 /* Because sparc is big endian, the top half length is at the correct offset. */
467 this->nameSymbolLength = copyin_uint16(this->nameSymbol +
468 OFFSET_Symbol_length_and_refcount);
469
470 this->signatureSymbol = copyin_ptr(this->constantPool +
471 this->signatureIndex * sizeof (pointer) + SIZE_ConstantPool);
472 this->signatureSymbol &= (~1); /* remove metadata lsb */
473
474 this->signatureSymbolLength = copyin_uint16(this->signatureSymbol +
475 OFFSET_Symbol_length_and_refcount);
476
477 this->klassPtr = copyin_ptr(this->constantPool +
478 OFFSET_ConstantPool_pool_holder);
479
480 this->klassSymbol = copyin_ptr(this->klassPtr +
481 OFFSET_Klass_name);
482
483 this->klassSymbolLength = copyin_uint16(this->klassSymbol +
484 OFFSET_Symbol_length_and_refcount);
485
486 /*
487 * Enough for three strings, plus the '.', plus the trailing '\0'.
488 */
489 this->result = (char *) alloca(this->klassSymbolLength +
490 this->nameSymbolLength +
491 this->signatureSymbolLength + 2 + 1);
492
493 copyinto(this->klassSymbol + OFFSET_Symbol_body,
494 this->klassSymbolLength, this->result);
495
496 /*
497 * Add the '.' between the class and the name.
498 */
499 this->result[this->klassSymbolLength] = '.';
500
501 copyinto(this->nameSymbol + OFFSET_Symbol_body,
502 this->nameSymbolLength,
503 this->result + this->klassSymbolLength + 1);
504
|