Skip to content

Commit

Permalink
The changes reflect the feature request eclipse-openj9#16416.
Browse files Browse the repository at this point in the history
Instead of printing the memory address for string arguments, print the actual string at max of 32 characters.
There will be subsequent PRs for cmdline option for string length and tests.

Closes: eclipse-openj9#16416
Signed-off-by: Nick Kamal <[email protected]>
  • Loading branch information
h3110n3rv3 committed Nov 21, 2024
1 parent ed27c15 commit 9f8b981
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions runtime/rastrace/method_trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@
#undef UT_MODULE_UNLOADED
#include "ut_mt.h"

#define DEFAULT_STRING_LENGTH 128
#define DEFAULT_BUFFER_LENGTH 128
#define DEFAULT_STRING_LENGTH 32

static void hookRAMClassLoad(J9HookInterface** hook, UDATA eventNum, void* eventData, void* userData);
static void traceMethodArgInt (J9VMThread *thr, UDATA* arg0EA, char* cursor, UDATA length, char* type);
Expand Down Expand Up @@ -483,10 +484,10 @@ traceMethodArgObject(J9VMThread *thr, UDATA* arg0EA, char* cursor, UDATA length)

if (clazz == J9VMJAVALANGSTRING_OR_NULL(vm)) {
/* string arg */
char stringArgBuffer[DEFAULT_STRING_LENGTH];
char stringArgBuffer[DEFAULT_BUFFER_LENGTH];

J9InternalVMFunctions const * const vmFuncs = thr->javaVM->internalVMFunctions;
char *stringArgUTF8 = vmFuncs->copyStringToUTF8WithMemAlloc(thr, object, J9_STR_NULL_TERMINATE_RESULT, "", 0, stringArgBuffer, DEFAULT_STRING_LENGTH, NULL);
char *stringArgUTF8 = vmFuncs->copyStringToUTF8WithMemAlloc(thr, object, J9_STR_NULL_TERMINATE_RESULT, "", 0, stringArgBuffer, DEFAULT_BUFFER_LENGTH, NULL);

if(DEFAULT_STRING_LENGTH < strlen(stringArgUTF8)) {
j9str_printf(PORTLIB, cursor, length, "%.*s@%.32s...", (U_32)J9UTF8_LENGTH(className), J9UTF8_DATA(className), stringArgUTF8);
Expand Down

0 comments on commit 9f8b981

Please sign in to comment.