Skip to content

Commit

Permalink
Merge pull request #21106 from keithc-ca/j9tty_err_printf
Browse files Browse the repository at this point in the history
Improve definition of j9tty_err_printf()
  • Loading branch information
pshipton authored Feb 11, 2025
2 parents b6b5bb6 + affb371 commit dc4d492
Show file tree
Hide file tree
Showing 30 changed files with 336 additions and 359 deletions.
2 changes: 1 addition & 1 deletion runtime/compiler/control/HookedByTheJit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1770,7 +1770,7 @@ static void initThreadAfterCreation(J9VMThread *vmThread)

if ((tracefp = j9file_open(fileName, EsOpenWrite | EsOpenAppend | EsOpenCreate, 0644)) == -1)
{
j9tty_err_printf(PORTLIB, "Error: Failed to open jit trace file %s.\n", fileName);
j9tty_err_printf("Error: Failed to open jit trace file %s.\n", fileName);
}

VMTHREAD_TRACINGBUFFER_FH(vmThread) = tracefp;
Expand Down
2 changes: 1 addition & 1 deletion runtime/compiler/env/jitsupport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ I_32 j9jit_vfprintf(TR::FILE *pFile, const char *format, va_list args)
if (!pFile || pFile == TR::IO::Stdout)
j9tty_printf(privatePortLibrary, "%s", buf);
else if (pFile == TR::IO::Stderr)
j9tty_err_printf(privatePortLibrary, "%s", buf);
j9tty_err_printf("%s", buf);
else
{
char *bufPtr = buf;
Expand Down
2 changes: 1 addition & 1 deletion runtime/jcl/common/jclcinit.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ jint computeFullVersionString(J9JavaVM* vm)
EsBuildVersionString,
jitEnabled,
aotEnabled)) {
j9tty_err_printf(PORTLIB, "\n%s - %d: %s: Error: Java VM info string exceeds buffer size\n", __FILE__, __LINE__, __FUNCTION__);
j9tty_err_printf("\n%s - %d: %s: Error: Java VM info string exceeds buffer size\n", __FILE__, __LINE__, __FUNCTION__);
return JNI_ERR;
}

Expand Down
2 changes: 1 addition & 1 deletion runtime/jnichk/jnicheck.c
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ J9VMDllMain(J9JavaVM* vm, IDATA stage, void* reserved)
}

if ((*hook)->J9HookRegisterWithCallSite(hook, J9HOOK_VM_NATIVE_METHOD_RETURN, methodExitHook, OMR_GET_CALLSITE(), NULL)) {
j9tty_err_printf(PORTLIB, "<JNI check utility: unable to hook event>\n");
j9tty_err_printf("<JNI check utility: unable to hook event>\n");
return J9VMDLLMAIN_FAILED;
}

Expand Down
2 changes: 1 addition & 1 deletion runtime/jvmti/jvmtiStartup.c
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ IDATA J9VMDllMain(J9JavaVM *vm, IDATA stage, void *reserved)
J9JVMTIData *jvmtiData = J9JVMTI_DATA_FROM_VM(vm);
if (hookGlobalEvents(jvmtiData)) {
PORT_ACCESS_FROM_JAVAVM(vm);
j9tty_err_printf(PORTLIB, "Need NLS message here\n");
j9tty_err_printf("Need NLS message here\n");
goto _error;
}

Expand Down
2 changes: 1 addition & 1 deletion runtime/oti/j9port_generated.h
Original file line number Diff line number Diff line change
Expand Up @@ -569,7 +569,7 @@ extern J9_CFUNC int32_t j9port_isCompatible(struct J9PortLibraryVersion *expecte
#define j9tty_printf(param1,...) OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_printf(OMRPORT_FROM_J9PORT(param1), ## __VA_ARGS__)
#define j9tty_vprintf(param1,param2) OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_vprintf(OMRPORT_FROM_J9PORT(privatePortLibrary),param1,param2)
#define j9tty_get_chars(param1,param2) OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_get_chars(OMRPORT_FROM_J9PORT(privatePortLibrary),param1,param2)
#define j9tty_err_printf(param1,...) OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_err_printf(OMRPORT_FROM_J9PORT(param1), ## __VA_ARGS__)
#define j9tty_err_printf(param1,...) OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_err_printf(OMRPORT_FROM_J9PORT(privatePortLibrary), param1, ## __VA_ARGS__)
#define j9tty_err_vprintf(param1,param2) OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_err_vprintf(OMRPORT_FROM_J9PORT(privatePortLibrary),param1,param2)
#define j9tty_available() OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_available(OMRPORT_FROM_J9PORT(privatePortLibrary))
#define j9tty_daemonize() OMRPORT_FROM_J9PORT(privatePortLibrary)->tty_daemonize(OMRPORT_FROM_J9PORT(privatePortLibrary))
Expand Down
131 changes: 66 additions & 65 deletions runtime/rasdump/dmpagent.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0
*******************************************************************************/


/*
* Note: remove this when portlib supports launching of executables
*/
Expand Down Expand Up @@ -625,7 +624,7 @@ doConsoleDump(J9RASdumpAgent *agent, char *label, J9RASdumpContext *context)
J9JavaVM *vm = context->javaVM;
PORT_ACCESS_FROM_JAVAVM(vm);

j9tty_err_printf(PORTLIB, "-------- Console dump --------\n");
j9tty_err_printf("-------- Console dump --------\n");

/* Fatal dumps to stderr default to the old-style gpThreadDump */
if ( (context->eventFlags & J9RAS_DUMP_ON_GP_FAULT) && *label == '-' && FIND_DUMP_QUEUE(vm, queue) ) {
Expand All @@ -647,7 +646,7 @@ doConsoleDump(J9RASdumpAgent *agent, char *label, J9RASdumpContext *context)
vm->internalVMFunctions->printThreadInfo(vm, self, *label == '-' ? NULL : label, TRUE);
}

j9tty_err_printf(PORTLIB, "\n^^^^^^^^ Console dump ^^^^^^^^\n");
j9tty_err_printf("\n^^^^^^^^ Console dump ^^^^^^^^\n");

return OMR_ERROR_NONE;
}
Expand Down Expand Up @@ -1836,18 +1835,18 @@ printDumpSpec(struct J9JavaVM *vm, IDATA kind, IDATA verboseLevel)

if ( verboseLevel > 1 ) {

j9tty_err_printf(PORTLIB,
j9tty_err_printf(
"\n%s:\n\n"
" -Xdump:%s[:defaults][:<option>=<value>, ...]\n",
spec->summary,
spec->name
);

j9tty_err_printf(PORTLIB, "\nDump options:\n\n");
j9tty_err_printf("\nDump options:\n\n");

j9tty_err_printf(PORTLIB, " events=<name> Trigger dump on named events\n"
j9tty_err_printf(" events=<name> Trigger dump on named events\n"
" [+<name>...] (see -Xdump:events)\n\n");
j9tty_err_printf(PORTLIB, " filter=[*]<name>[*] Filter on class (for load)\n"
j9tty_err_printf(" filter=[*]<name>[*] Filter on class (for load)\n"
" [*]<name>[*] Filter on exception (for throw,systhrow,uncaught)\n"
" [*]<name>#<class>.<method>[*] with throwing class and method\n"
" [*]<name>#<class>.<method>#<offset> with throwing class stack offset\n"
Expand All @@ -1856,36 +1855,34 @@ printDumpSpec(struct J9JavaVM *vm, IDATA kind, IDATA verboseLevel)
" #<n>[..<m>] Filter on exit codes (for vmstop)\n"
" #<msecs>ms Filter on time (for slow)\n"
" #<i>[k|m][..<j>[k|m]] Filter on object size (for allocation)\n\n");
j9tty_err_printf(PORTLIB, " msg_filter=[*]<string>[*] Filter based on the exception message string\n");
j9tty_err_printf(PORTLIB, " %s<label> %s\n",
j9tty_err_printf(" msg_filter=[*]<string>[*] Filter based on the exception message string\n");
j9tty_err_printf(" %s<label> %s\n",
spec->labelTag, spec->labelDescription);
j9tty_err_printf(PORTLIB, " range=<n>..<m> Limit dumps\n");
j9tty_err_printf(PORTLIB, " priority=<n> Highest first\n");
j9tty_err_printf(PORTLIB, " request=<name> Request additional VM actions\n"
j9tty_err_printf(" range=<n>..<m> Limit dumps\n");
j9tty_err_printf(" priority=<n> Highest first\n");
j9tty_err_printf(" request=<name> Request additional VM actions\n"
" [+<name>...] (see -Xdump:request)\n");

if (strcmp(spec->name, "heap") == 0) {
j9tty_err_printf(PORTLIB, "\n opts=PHD|CLASSIC\n");
j9tty_err_printf("\n opts=PHD|CLASSIC\n");
} else if (strcmp(spec->name, "tool") == 0) {
j9tty_err_printf(PORTLIB, "\n opts=WAIT<msec>|ASYNC\n");
j9tty_err_printf("\n opts=WAIT<msec>|ASYNC\n");
#ifdef J9ZOS390
} else if (strcmp(spec->name, "system") == 0) {
j9tty_err_printf(PORTLIB, "\n opts=IEATDUMP|CEEDUMP\n");
j9tty_err_printf("\n opts=IEATDUMP|CEEDUMP\n");
#endif
} else {
j9tty_err_printf(PORTLIB, "\n opts=<NONE>\n");
j9tty_err_printf("\n opts=<NONE>\n");
}
}

j9tty_err_printf(PORTLIB,
"\nDefault -Xdump:%s settings:\n\n",
spec->name);
j9tty_err_printf("\nDefault -Xdump:%s settings:\n\n", spec->name);

/* Use compact form */
j9tty_err_printf(PORTLIB, " events=");
j9tty_err_printf(" events=");
printDumpEvents(vm, tmpSettings.eventMask, 0);

j9tty_err_printf(PORTLIB,
j9tty_err_printf(
"\n"
" filter=%s\n"
" %s%s\n"
Expand All @@ -1898,14 +1895,14 @@ printDumpSpec(struct J9JavaVM *vm, IDATA kind, IDATA verboseLevel)
);

/* Use compact form */
j9tty_err_printf(PORTLIB, " request=");
j9tty_err_printf(" request=");
printDumpRequests(vm, tmpSettings.requestMask, 0);

j9tty_err_printf(PORTLIB, "\n opts=%s\n\n",
j9tty_err_printf("\n opts=%s\n\n",
tmpSettings.dumpOptions ? tmpSettings.dumpOptions : "");

} else {
j9tty_err_printf(PORTLIB, " -Xdump:%s%*c%s\n", spec->name, 17-strlen(spec->name), ' ', spec->summary);
j9tty_err_printf(" -Xdump:%s%*c%s\n", spec->name, 17-strlen(spec->name), ' ', spec->summary);
}

return OMR_ERROR_NONE;
Expand Down Expand Up @@ -1940,25 +1937,25 @@ printDumpEvents(struct J9JavaVM *vm, UDATA bits, IDATA verbose)

/* Header */
if (verbose) {
j9tty_err_printf(PORTLIB, " Name%*cEvent hook\n ", maxNameLength - 2, ' ');
j9tty_err_printf(" Name%*cEvent hook\n ", maxNameLength - 2, ' ');
for (i = 0; i < maxNameLength; i++) {
j9tty_err_printf(PORTLIB, "-");
j9tty_err_printf("-");
}
j9tty_err_printf(PORTLIB, " ");
j9tty_err_printf(" ");
for (i = 0; i < maxDetailLength; i++) {
j9tty_err_printf(PORTLIB, "-");
j9tty_err_printf("-");
}
j9tty_err_printf(PORTLIB, "\n");
j9tty_err_printf("\n");
}

/* Events */
for (i = 0; i < J9RAS_DUMP_KNOWN_EVENTS; i++) {
if (bits & rasDumpEvents[i].bits) {
/* Switch between multi-line and single-line styles */
if (verbose) {
j9tty_err_printf(PORTLIB, " %s%*c%s\n", rasDumpEvents[i].name, maxNameLength - strlen(rasDumpEvents[i].name) + 2, ' ', rasDumpEvents[i].detail);
j9tty_err_printf(" %s%*c%s\n", rasDumpEvents[i].name, maxNameLength - strlen(rasDumpEvents[i].name) + 2, ' ', rasDumpEvents[i].detail);
} else {
j9tty_err_printf(PORTLIB, "%s%s", separator, rasDumpEvents[i].name);
j9tty_err_printf("%s%s", separator, rasDumpEvents[i].name);
}

separator = "+";
Expand All @@ -1967,7 +1964,7 @@ printDumpEvents(struct J9JavaVM *vm, UDATA bits, IDATA verbose)

/* Footer */
if (verbose) {
j9tty_err_printf(PORTLIB, "\n");
j9tty_err_printf("\n");
}

return OMR_ERROR_NONE;
Expand All @@ -1981,25 +1978,29 @@ printDumpRequests(struct J9JavaVM *vm, UDATA bits, IDATA verbose)
PORT_ACCESS_FROM_JAVAVM(vm);

/* Header */
if (verbose) {j9tty_err_printf( PORTLIB, " Name VM action\n -------- -----------------------\n" );}
if (verbose) {
j9tty_err_printf(" Name VM action\n -------- -----------------------\n" );
}

for (i = 0; i < J9RAS_DUMP_KNOWN_REQUESTS; i++)
{
if ( bits & rasDumpRequests[i].bits )
{
/* Switch between multi-line and single-line styles */
if (verbose) {
j9tty_err_printf( PORTLIB, " %s%*c%s\n", rasDumpRequests[i].name, 10-strlen(rasDumpRequests[i].name), ' ', rasDumpRequests[i].detail );
j9tty_err_printf(" %s%*c%s\n", rasDumpRequests[i].name, 10-strlen(rasDumpRequests[i].name), ' ', rasDumpRequests[i].detail );
} else {
j9tty_err_printf( PORTLIB, "%s%s", separator, rasDumpRequests[i].name );
j9tty_err_printf("%s%s", separator, rasDumpRequests[i].name );
}

separator = "+";
}
}

/* Footer */
if (verbose) {j9tty_err_printf( PORTLIB, "\n" );}
if (verbose) {
j9tty_err_printf("\n" );
}

return OMR_ERROR_NONE;
}
Expand Down Expand Up @@ -2162,49 +2163,49 @@ printDumpAgent(struct J9JavaVM *vm, struct J9RASdumpAgent *agent)
{
PORT_ACCESS_FROM_JAVAVM(vm);

j9tty_err_printf(PORTLIB, "-Xdump:");
j9tty_err_printf("-Xdump:");

if (agent->dumpFn == doSystemDump) {
j9tty_err_printf(PORTLIB, "system:\n");
j9tty_err_printf("system:\n");
} else if (agent->dumpFn == doHeapDump) {
j9tty_err_printf(PORTLIB, "heap:\n");
j9tty_err_printf("heap:\n");
} else if (agent->dumpFn == doJavaDump) {
j9tty_err_printf(PORTLIB, "java:\n");
j9tty_err_printf("java:\n");
} else if (agent->dumpFn == doToolDump) {
j9tty_err_printf(PORTLIB, "tool:\n");
j9tty_err_printf("tool:\n");
} else if (agent->dumpFn == doJitDump) {
j9tty_err_printf(PORTLIB, "jit:\n");
j9tty_err_printf("jit:\n");
} else if (agent->dumpFn == doConsoleDump) {
j9tty_err_printf(PORTLIB, "console:\n");
j9tty_err_printf("console:\n");
} else if (agent->dumpFn == doSilentDump) {
j9tty_err_printf(PORTLIB, "silent:\n");
j9tty_err_printf("silent:\n");
#if defined(J9ZOS390)
} else if (agent->dumpFn == doCEEDump) {
j9tty_err_printf(PORTLIB, "ceedump:\n");
j9tty_err_printf("ceedump:\n");
#endif
} else if(agent->dumpFn == doSnapDump) {
j9tty_err_printf(PORTLIB, "snap:\n");
j9tty_err_printf("snap:\n");
} else if (agent->dumpFn == doStackDump) {
j9tty_err_printf(PORTLIB, "stack:\n");
j9tty_err_printf("stack:\n");
} else if (agent->dumpFn == doJavaVMExit) {
j9tty_err_printf(PORTLIB, "exit:\n");
j9tty_err_printf("exit:\n");
} else {
j9tty_err_printf(PORTLIB, "dumpFn=%p\n", agent->dumpFn);
j9tty_err_printf("dumpFn=%p\n", agent->dumpFn);
}

j9tty_err_printf(PORTLIB, " events=");
j9tty_err_printf(" events=");
printDumpEvents(vm, agent->eventMask, 0);
j9tty_err_printf(PORTLIB, ",");
j9tty_err_printf(",");

if (agent->detailFilter != NULL) {
j9tty_err_printf(PORTLIB, "\n filter=%s,", agent->detailFilter);
j9tty_err_printf("\n filter=%s,", agent->detailFilter);
}

if (agent->subFilter != NULL) {
j9tty_err_printf(PORTLIB, "\n msg_filter=%s,", agent->subFilter);
j9tty_err_printf("\n msg_filter=%s,", agent->subFilter);
}

j9tty_err_printf(PORTLIB,
j9tty_err_printf(
"\n"
" %s%s,\n"
" range=%d..%d,\n"
Expand All @@ -2215,15 +2216,15 @@ printDumpAgent(struct J9JavaVM *vm, struct J9RASdumpAgent *agent)
agent->priority
);

j9tty_err_printf(PORTLIB, " request=");
j9tty_err_printf(" request=");
printDumpRequests(vm, agent->requestMask, 0);

if (agent->dumpOptions != NULL) {
j9tty_err_printf(PORTLIB, ",");
j9tty_err_printf(PORTLIB, "\n opts=%s",
j9tty_err_printf(",");
j9tty_err_printf("\n opts=%s",
agent->dumpOptions ? agent->dumpOptions : "");
}
j9tty_err_printf(PORTLIB, "\n");
j9tty_err_printf("\n");

return OMR_ERROR_NONE;
}
Expand Down Expand Up @@ -2961,14 +2962,14 @@ reportDumpRequest(struct J9PortLibrary* portLibrary, J9RASdumpContext * context,
static char *
scanSubFilter(J9JavaVM *vm, const J9RASdumpSettings *settings, const char **cursor, UDATA *actionPtr)
{
UDATA eventMask = settings->eventMask;
char *subFilter = NULL;
UDATA eventMask = settings->eventMask;
char *subFilter = NULL;

subFilter = scanString(vm, cursor);
subFilter = scanString(vm, cursor);

if (0 == (eventMask & J9RAS_DUMP_EXCEPTION_EVENT_GROUP)) {
*actionPtr = BOGUS_DUMP_OPTION;
}
if (0 == (eventMask & J9RAS_DUMP_EXCEPTION_EVENT_GROUP)) {
*actionPtr = BOGUS_DUMP_OPTION;
}

return subFilter;
return subFilter;
}
6 changes: 2 additions & 4 deletions runtime/rasdump/dmpmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -379,8 +379,7 @@ mapDumpActions(J9JavaVM *vm, J9RASdumpOption agentOpts[], IDATA *agentNum, char
length = eventStringLength + countChars;
eventString = j9mem_allocate_memory(length, OMRMEM_CATEGORY_VM);
if (NULL == eventString) {
j9tty_err_printf(PORTLIB,
"Could not allocate memory to handle JAVA_DUMP_OPTS dump count option, option ignored.\n");
j9tty_err_printf("Could not allocate memory to handle JAVA_DUMP_OPTS dump count option, option ignored.\n");
countChars = 0;
} else {
/* eventString ends with "..0"; the '0' is replaced by countChars */
Expand All @@ -401,8 +400,7 @@ mapDumpActions(J9JavaVM *vm, J9RASdumpOption agentOpts[], IDATA *agentNum, char
agentOpts[*agentNum].flags = J9RAS_DUMP_OPT_ARGS_ALLOC;
agentOpts[*agentNum].args = j9mem_allocate_memory(strlen(eventString) + 1, OMRMEM_CATEGORY_VM);
if(NULL == agentOpts[*agentNum].args) {
j9tty_err_printf(PORTLIB,
"Could not allocate memory to handle JAVA_DUMP_OPTS dump count option, option ignored (extra copy failed).\n");
j9tty_err_printf("Could not allocate memory to handle JAVA_DUMP_OPTS dump count option, option ignored (extra copy failed).\n");
countChars = 0;
agentOpts[*agentNum].args = dgConditions[condition].eventString;
agentOpts[*agentNum].flags = J9RAS_DUMP_OPT_ARGS_STATIC;
Expand Down
Loading

0 comments on commit dc4d492

Please sign in to comment.