Changeset 83663 in vbox
- Timestamp:
- Apr 9, 2020 6:54:45 PM (4 years ago)
- File:
-
- 1 edited
-
trunk/src/VBox/Runtime/VBox/log-vbox.cpp (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/VBox/log-vbox.cpp
r83660 r83663 502 502 RTTIMESPEC TimeSpec; 503 503 RTTIME Time; 504 RTPROCESS pid = RTProcSelf(); 504 505 RTTimeExplode(&Time, RTTimeNow(&TimeSpec)); 505 506 rc = RTLogCreate(&pLogger, 0, NULL, "VBOX_LOG", RT_ELEMENTS(g_apszGroups), &g_apszGroups[0], … … 512 513 # endif 513 514 Time.i32Year, Time.u8Month, Time.u8MonthDay, Time.u8Hour, Time.u8Minute, Time.u8Second, 514 Time.u32Nanosecond / 10000000, pszExeName, RTProcSelf());515 Time.u32Nanosecond / 10000000, pszExeName, pid); 515 516 if (RT_SUCCESS(rc)) 516 517 { 517 # ifndef IN_GUEST518 518 /* 519 519 * Write a log header. 520 520 */ 521 char szBuf[RTPATH_MAX]; 522 RTTimeSpecToString(&TimeSpec, szBuf, sizeof(szBuf)); 523 RTLogLoggerEx(pLogger, 0, ~0U, "Log created: %s\n", szBuf); 524 RTLogLoggerEx(pLogger, 0, ~0U, "Executable: %s\n", RTProcGetExecutablePath(szBuf, sizeof(szBuf))); 521 char szBuf[80]; 522 RTPROCESS pidParent = NIL_RTPROCESS; 523 RTProcQueryParent(pid, &pidParent); 524 RTLogLoggerEx(pLogger, 0, ~0U, 525 "Log created: %s\n" 526 "Process ID: %d (%#x)\n" 527 "Parent PID: %d (%#x)\n" 528 "Executable: %s\n", 529 RTTimeSpecToString(&TimeSpec, szBuf, sizeof(szBuf)), 530 pid, pid, 531 pidParent, pidParent, 532 RTProcExecutablePath()); 525 533 526 534 /* executable and arguments - tricky and all platform specific. */ 527 # if defined(RT_OS_WINDOWS)535 # if defined(RT_OS_WINDOWS) 528 536 RTLogLoggerEx(pLogger, 0, ~0U, "Commandline: %ls\n", GetCommandLineW()); 529 537 530 # elif defined(RT_OS_SOLARIS)538 # elif defined(RT_OS_SOLARIS) 531 539 psinfo_t psi; 532 char szArgFileBuf[80]; 533 RTStrPrintf(szArgFileBuf, sizeof(szArgFileBuf), "/proc/%ld/psinfo", (long)getpid()); 534 FILE *pFile = fopen(szArgFileBuf, "rb"); 540 RTStrPrintf(szBuf, sizeof(szBuf), "/proc/%ld/psinfo", (long)getpid()); 541 FILE *pFile = fopen(szBuf, "rb"); 535 542 if (pFile) 536 543 { 537 544 if (fread(&psi, sizeof(psi), 1, pFile) == 1) 538 545 { 539 # if 0 /* 100% safe:*/546 # if 0 /* 100% safe:*/ 540 547 RTLogLoggerEx(pLogger, 0, ~0U, "Args: %s\n", psi.pr_psargs); 541 # else /* probably safe: */548 # else /* probably safe: */ 542 549 const char * const *argv = (const char * const *)psi.pr_argv; 543 550 for (int iArg = 0; iArg < psi.pr_argc; iArg++) 544 551 RTLogLoggerEx(pLogger, 0, ~0U, "Arg[%d]: %s\n", iArg, argv[iArg]); 545 # endif552 # endif 546 553 547 554 } … … 549 556 } 550 557 551 # elif defined(RT_OS_LINUX)558 # elif defined(RT_OS_LINUX) 552 559 FILE *pFile = fopen("/proc/self/cmdline", "r"); 553 560 if (pFile) … … 577 584 } 578 585 579 # elif defined(RT_OS_HAIKU)586 # elif defined(RT_OS_HAIKU) 580 587 team_info info; 581 588 if (get_team_info(0, &info) == B_OK) … … 585 592 } 586 593 587 # elif defined(RT_OS_FREEBSD) || defined(RT_OS_NETBSD)594 # elif defined(RT_OS_FREEBSD) || defined(RT_OS_NETBSD) 588 595 /* Retrieve the required length first */ 589 596 int aiName[4]; 590 # if defined(RT_OS_FREEBSD)597 # if defined(RT_OS_FREEBSD) 591 598 aiName[0] = CTL_KERN; 592 599 aiName[1] = KERN_PROC; 593 600 aiName[2] = KERN_PROC_ARGS; /* Introduced in FreeBSD 4.0 */ 594 601 aiName[3] = getpid(); 595 # elif defined(RT_OS_NETBSD)602 # elif defined(RT_OS_NETBSD) 596 603 aiName[0] = CTL_KERN; 597 604 aiName[1] = KERN_PROC_ARGS; 598 605 aiName[2] = getpid(); 599 606 aiName[3] = KERN_PROC_ARGV; 600 # endif607 # endif 601 608 size_t cchArgs = 0; 602 609 int rcBSD = sysctl(aiName, RT_ELEMENTS(aiName), NULL, &cchArgs, NULL, 0); … … 626 633 } 627 634 628 # elif defined(RT_OS_OS2) || defined(RT_OS_DARWIN)635 # elif defined(RT_OS_OS2) || defined(RT_OS_DARWIN) 629 636 /* commandline? */ 630 # else 631 # error needs porting. 632 # endif 633 # endif /* IN_GUEST */ 637 # else 638 # error needs porting. 639 # endif 634 640 } 635 641
Note:
See TracChangeset
for help on using the changeset viewer.

