@@ -200,12 +200,49 @@ traceMethodEnter(J9VMThread *thr, J9Method *method, void *receiverAddress, UDATA
200
200
if (modifiers & J9AccNative ) {
201
201
Trc_MethodEntryN (thr , J9UTF8_LENGTH (className ), J9UTF8_DATA (className ), J9UTF8_LENGTH (methodName ), J9UTF8_DATA (methodName ), J9UTF8_LENGTH (methodSignature ), J9UTF8_DATA (methodSignature ), receiver );
202
202
} else {
203
- Trc_MethodEntry (thr , J9UTF8_LENGTH (className ), J9UTF8_DATA (className ), J9UTF8_LENGTH (methodName ), J9UTF8_DATA (methodName ), J9UTF8_LENGTH (methodSignature ), J9UTF8_DATA (methodSignature ), receiver );
203
+ Trc_MethodEntry (thr , J9UTF8_LENGTH (className ), J9UTF8_DATA (className ), J9UTF8_LENGTH (methodName ), J9UTF8_DATA (methodName ), J9UTF8_LENGTH (methodSignature ), J9UTF8_DATA (methodSignature ), 0 , "" , receiver );
204
204
}
205
205
206
206
if (doParameters ) {
207
+ J9JavaVM * vm = thr -> javaVM ;
208
+ const unsigned int maxStringLength = RAS_GLOBAL_FROM_JAVAVM (maxStringLength , vm );
209
+
210
+ if ((NULL != receiver )
211
+ && (receiverClazz == J9VMJAVALANGSTRING_OR_NULL (vm ))
212
+ && (0 != maxStringLength )
213
+ && !J9UTF8_LITERAL_EQUALS (J9UTF8_DATA (methodName ), J9UTF8_LENGTH (methodName ), "<init>" )
214
+ ) {
215
+ PORT_ACCESS_FROM_VMC (thr );
216
+ char utf8Buffer [RAS_MAX_STRING_LENGTH_LIMIT + 1 ];
217
+ char outputString [RAS_MAX_STRING_LENGTH_LIMIT + 1 ];
218
+ UDATA utf8Length = 0 ;
219
+
220
+ char * utf8String = vm -> internalVMFunctions -> copyStringToUTF8WithMemAlloc (
221
+ thr ,
222
+ receiver ,
223
+ 0 ,
224
+ "" ,
225
+ 0 ,
226
+ utf8Buffer ,
227
+ sizeof (utf8Buffer ),
228
+ & utf8Length );
229
+
230
+ if (NULL == utf8String ) {
231
+ sprintf (outputString , "(String)<Memory allocation error>" );
232
+ } else if (utf8Length > maxStringLength ) {
233
+ sprintf (outputString , "(String)\"%.*s\"..." , (U_32 )maxStringLength , utf8String );
234
+ } else {
235
+ sprintf (outputString , "(String)\"%.*s\"" , (U_32 )utf8Length , utf8String );
236
+ }
237
+
238
+ Trc_MethodEntry (thr , J9UTF8_LENGTH (className ), J9UTF8_DATA (className ), J9UTF8_LENGTH (methodName ), J9UTF8_DATA (methodName ), J9UTF8_LENGTH (methodSignature ), J9UTF8_DATA (methodSignature ), J9UTF8_LENGTH (outputString ), outputString , receiver );
239
+
240
+ if (utf8Buffer != utf8String ) {
241
+ j9mem_free_memory (utf8String );
242
+ }
243
+ }
207
244
Trc_MethodArguments (
208
- thr ,
245
+ thr ,
209
246
(U_32 )J9UTF8_LENGTH (receiverClassName ),
210
247
J9UTF8_DATA (receiverClassName ),
211
248
receiver ,
@@ -498,9 +535,9 @@ traceMethodArgObject(J9VMThread *thr, UDATA* arg0EA, char* cursor, UDATA length)
498
535
if (NULL == utf8String ) {
499
536
j9str_printf (PORTLIB , cursor , length , "(String)<Memory allocation error>" );
500
537
} else if (utf8Length > maxStringLength ) {
501
- j9str_printf (PORTLIB , cursor , length , "(String)\"%.*s\"..." , (U_32 )maxStringLength , utf8String );
538
+ j9str_printf (PORTLIB , cursor , length , "(String)@%p - \"%.*s\"..." , (U_32 )maxStringLength , utf8String , object );
502
539
} else {
503
- j9str_printf (PORTLIB , cursor , length , "(String)\"%.*s\"" , (U_32 )utf8Length , utf8String );
540
+ j9str_printf (PORTLIB , cursor , length , "@%p - (String)\"%.*s\"" , (U_32 )utf8Length , utf8String , object );
504
541
}
505
542
506
543
if (utf8Buffer != utf8String ) {
0 commit comments