Lines Matching defs:pSolProc

193  * @param pSolProc         Pointer to the solaris process.
200 static ssize_t ProcReadAddrSpace(PRTSOLCOREPROCESS pSolProc, RTFOFF off, void *pvBuf, size_t cbToRead)
204 ssize_t cbRead = pread(pSolProc->fdAs, pvBuf, cbToRead, off);
228 * @param pSolProc Pointer to the solaris process.
232 static inline bool IsProcessArchNative(PRTSOLCOREPROCESS pSolProc)
234 return pSolProc->ProcInfo.pr_dmodel == PR_MODEL_NATIVE;
456 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
460 RTStrPrintf(szPath, sizeof(szPath), "/proc/%d/psinfo", (int)pSolProc->Process);
465 rc = ReadFileNoIntr(fd, &pSolProc->ProcInfo, cbProcInfo);
489 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
494 RTStrPrintf(szPath, sizeof(szPath), "/proc/%d/status", (int)pSolProc->Process);
499 AssertCompile(sizeof(pstatus_t) == sizeof(pSolProc->ProcStatus));
500 rc = ReadFileNoIntr(fd, &pSolProc->ProcStatus, cbProcStatus);
524 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
525 return ProcReadFileInto(pSolCore, "cred", &pSolProc->pvCred, &pSolProc->cbCred);
541 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
542 int rc = ProcReadFileInto(pSolCore, "priv", (void **)&pSolProc->pPriv, &pSolProc->cbPriv);
545 pSolProc->pcPrivImpl = getprivimplinfo();
546 if (!pSolProc->pcPrivImpl)
558 * @param pSolProc Pointer to the core object.
567 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
568 return ProcReadFileInto(pSolCore, "ldt", &pSolProc->pvLdt, &pSolProc->cbLdt);
584 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
587 RTStrPrintf(szPath, sizeof(szPath), "/proc/%d/auxv", (int)pSolProc->Process);
599 pSolProc->pAuxVecs = (auxv_t*)GetMemoryChunk(pSolCore, cbAuxFile + sizeof(auxv_t));
600 if (pSolProc->pAuxVecs)
602 rc = ReadFileNoIntr(fd, pSolProc->pAuxVecs, cbAuxFile);
606 pSolProc->cAuxVecs = cbAuxFile / sizeof(auxv_t);
608 pSolProc->cAuxVecs));
609 if (pSolProc->cAuxVecs > 0)
611 pSolProc->pAuxVecs[pSolProc->cAuxVecs].a_type = AT_NULL;
612 pSolProc->pAuxVecs[pSolProc->cAuxVecs].a_un.a_val = 0L;
617 CORELOGRELSYS((CORELOG_NAME "ProcReadAuxVecs: Invalid vector count %u\n", pSolProc->cAuxVecs));
623 pSolProc->pAuxVecs = NULL;
624 pSolProc->cAuxVecs = 0;
646 static long GetAuxVal(PRTSOLCOREPROCESS pSolProc, int Type)
648 AssertReturn(pSolProc, -1);
649 if (pSolProc->pAuxVecs)
651 auxv_t *pAuxVec = pSolProc->pAuxVecs;
674 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
677 RTStrPrintf(szPath, sizeof(szPath), "/proc/%d/map", (int)pSolProc->Process);
686 RTStrPrintf(szPath, sizeof(szPath), "/proc/%d/as", (int)pSolProc->Process);
687 pSolProc->fdAs = open(szPath, O_RDONLY);
688 if (pSolProc->fdAs >= 0)
702 pSolProc->cMappings = cbMapFile / sizeof(prmap_t);
703 if (pSolProc->cMappings > 0)
708 pSolProc->pMapInfoHead = (PRTSOLCOREMAPINFO)GetMemoryChunk(pSolCore,
709 pSolProc->cMappings * sizeof(RTSOLCOREMAPINFO));
710 if (pSolProc->pMapInfoHead)
715 /*Assert(pSolProc->pMapInfoHead == NULL); - does not make sense */
716 PRTSOLCOREMAPINFO pCur = pSolProc->pMapInfoHead;
718 for (uint64_t i = 0; i < pSolProc->cMappings; i++, pMap++, pCur++)
734 int rc2 = ProcReadAddrSpace(pSolProc, pCur->pMap.pr_vaddr + k, &achBuf, cb);
760 close(pSolProc->fdAs);
761 pSolProc->fdAs = -1;
762 CORELOG((CORELOG_NAME "ProcReadMappings: successfully read in %u mappings\n", pSolProc->cMappings));
767 pSolProc->cMappings * sizeof(RTSOLCOREMAPINFO)));
772 CORELOGRELSYS((CORELOG_NAME "ProcReadMappings: Invalid mapping count %u\n", pSolProc->cMappings));
789 close(pSolProc->fdAs);
790 pSolProc->fdAs = -1;
812 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
813 AssertReturn(pSolProc->pCurThreadCtx, VERR_NO_DATA);
883 pSolProc->pThreadInfoHead = (PRTSOLCORETHREADINFO)GetMemoryChunk(pSolCore, cbThreadInfo);
884 if (pSolProc->pThreadInfoHead)
886 PRTSOLCORETHREADINFO pCur = pSolProc->pThreadInfoHead;
899 && pStatus->pr_lwpid == (id_t)pSolProc->hCurThread)
901 AssertCompile(sizeof(pStatus->pr_reg) == sizeof(pSolProc->pCurThreadCtx->uc_mcontext.gregs));
902 AssertCompile(sizeof(pStatus->pr_fpreg) == sizeof(pSolProc->pCurThreadCtx->uc_mcontext.fpregs));
903 memcpy(&pStatus->pr_reg, &pSolProc->pCurThreadCtx->uc_mcontext.gregs, sizeof(pStatus->pr_reg));
904 memcpy(&pStatus->pr_fpreg, &pSolProc->pCurThreadCtx->uc_mcontext.fpregs, sizeof(pStatus->pr_fpreg));
906 AssertCompile(sizeof(pStatus->pr_lwphold) == sizeof(pSolProc->pCurThreadCtx->uc_sigmask));
907 memcpy(&pStatus->pr_lwphold, &pSolProc->pCurThreadCtx->uc_sigmask, sizeof(pStatus->pr_lwphold));
908 pStatus->pr_ustack = (uintptr_t)&pSolProc->pCurThreadCtx->uc_stack;
931 pSolProc->cThreads = cInfo;
973 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
979 int rc = sysinfo(SI_PLATFORM, pSolProc->szPlatform, sizeof(pSolProc->szPlatform));
985 pSolProc->szPlatform[sizeof(pSolProc->szPlatform) - 1] = '\0';
987 rc = uname(&pSolProc->UtsName);
994 rc = getzonenamebyid(pSolProc->ProcInfo.pr_zoneid, pSolProc->szZoneName, sizeof(pSolProc->szZoneName));
998 pSolProc->ProcInfo.pr_zoneid));
1001 pSolProc->szZoneName[sizeof(pSolProc->szZoneName) - 1] = '\0';
1023 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1024 psinfo_t *pSrc = &pSolProc->ProcInfo;
1084 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1134 pDst->pr_nlwp = pSolProc->ProcStatus.pr_nlwp;
1135 pDst->pr_sigpend = pSolProc->ProcStatus.pr_sigpend;
1136 pDst->pr_pid = pSolProc->ProcStatus.pr_pid;
1137 pDst->pr_ppid = pSolProc->ProcStatus.pr_ppid;
1138 pDst->pr_pgrp = pSolProc->ProcStatus.pr_pgid;
1139 pDst->pr_sid = pSolProc->ProcStatus.pr_sid;
1140 pDst->pr_utime = pSolProc->ProcStatus.pr_utime;
1141 pDst->pr_stime = pSolProc->ProcStatus.pr_stime;
1142 pDst->pr_cutime = pSolProc->ProcStatus.pr_cutime;
1143 pDst->pr_cstime = pSolProc->ProcStatus.pr_cstime;
1144 pDst->pr_brkbase = (caddr_t)pSolProc->ProcStatus.pr_brkbase;
1145 pDst->pr_brksize = pSolProc->ProcStatus.pr_brksize;
1146 pDst->pr_stkbase = (caddr_t)pSolProc->ProcStatus.pr_stkbase;
1147 pDst->pr_stksize = pSolProc->ProcStatus.pr_stksize;
1210 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1217 RTStrPrintf(szLpsInfoPath, sizeof(szLpsInfoPath), "/proc/%d/lpsinfo", (int)pSolProc->Process);
1393 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1400 cb += ElfNoteHeaderSize(pSolProc->cAuxVecs * sizeof(auxv_t));
1401 cb += ElfNoteHeaderSize(strlen(pSolProc->szPlatform));
1403 PRTSOLCORETHREADINFO pThreadInfo = pSolProc->pThreadInfoHead;
1421 cb += ElfNoteHeaderSize(pSolProc->cAuxVecs * sizeof(auxv_t));
1422 cb += ElfNoteHeaderSize(strlen(pSolProc->szPlatform) + 1);
1425 cb += ElfNoteHeaderSize(pSolProc->cbCred);
1427 if (pSolProc->pPriv)
1428 cb += ElfNoteHeaderSize(PRIV_PRPRIV_SIZE(pSolProc->pPriv)); /* Ought to be same as cbPriv!? */
1430 if (pSolProc->pcPrivImpl)
1431 cb += ElfNoteHeaderSize(PRIV_IMPL_INFO_SIZE(pSolProc->pcPrivImpl));
1433 cb += ElfNoteHeaderSize(strlen(pSolProc->szZoneName) + 1);
1434 if (pSolProc->cbLdt > 0)
1435 cb += ElfNoteHeaderSize(pSolProc->cbLdt);
1437 PRTSOLCORETHREADINFO pThreadInfo = pSolProc->pThreadInfoHead;
1474 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1493 { "NT_PRPSINFO", NT_PRPSINFO, &pSolProc->ProcInfoOld, sizeof(prpsinfo_t) },
1494 { "NT_AUXV", NT_AUXV, pSolProc->pAuxVecs, pSolProc->cAuxVecs * sizeof(auxv_t) },
1495 { "NT_PLATFORM", NT_PLATFORM, pSolProc->szPlatform, strlen(pSolProc->szPlatform) + 1 }
1513 PRTSOLCORETHREADINFO pThreadInfo = pSolProc->pThreadInfoHead;
1544 { "NT_PSINFO", NT_PSINFO, &pSolProc->ProcInfo, sizeof(psinfo_t) },
1545 { "NT_PSTATUS", NT_PSTATUS, &pSolProc->ProcStatus, sizeof(pstatus_t) },
1546 { "NT_AUXV", NT_AUXV, pSolProc->pAuxVecs, pSolProc->cAuxVecs * sizeof(auxv_t) },
1547 { "NT_PLATFORM", NT_PLATFORM, pSolProc->szPlatform, strlen(pSolProc->szPlatform) + 1 },
1548 { "NT_UTSNAME", NT_UTSNAME, &pSolProc->UtsName, sizeof(struct utsname) },
1549 { "NT_CONTENT", NT_CONTENT, &pSolProc->CoreContent, sizeof(core_content_t) },
1550 { "NT_PRCRED", NT_PRCRED, pSolProc->pvCred, pSolProc->cbCred },
1551 { "NT_PRPRIV", NT_PRPRIV, pSolProc->pPriv, PRIV_PRPRIV_SIZE(pSolProc->pPriv) },
1552 { "NT_PRPRIVINFO", NT_PRPRIVINFO, pSolProc->pcPrivImpl, PRIV_IMPL_INFO_SIZE(pSolProc->pcPrivImpl) },
1553 { "NT_ZONENAME", NT_ZONENAME, pSolProc->szZoneName, strlen(pSolProc->szZoneName) + 1 }
1571 PRTSOLCORETHREADINFO pThreadInfo = pSolProc->pThreadInfoHead;
1618 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1621 PRTSOLCOREMAPINFO pMapInfo = pSolProc->pMapInfoHead;
1631 int rc2 = ProcReadAddrSpace(pSolProc, pMapInfo->pMap.pr_vaddr + k, &achBuf, cb);
1680 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1686 PRTSOLCOREMAPINFO pMapInfo = pSolProc->pMapInfoHead;
1723 PRTSOLCOREPROCESS pSolProc)
1726 uint32_t cProgHdrs = pSolProc->cMappings + 2; /* two PT_NOTE program headers (old, new style) */
1862 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1869 RTStrPrintf(szPath, sizeof(szPath), "/proc/%d/as", (int)pSolProc->Process);
1873 pSolProc->fdAs = fd;
1886 rc = rtCoreDumperWriteCoreDoIt(pSolCore, pfnWriter, pSolProc);
1896 close(pSolProc->fdAs);
1897 pSolProc->fdAs = -1;
1937 PRTSOLCOREPROCESS pSolProc = &pSolCore->SolProc;
1938 pSolProc->Process = RTProcSelf();
1939 pSolProc->hCurThread = _lwp_self(); /* thr_self() */
1940 pSolProc->fdAs = -1;
1941 pSolProc->pCurThreadCtx = pContext;
1942 pSolProc->CoreContent = CC_CONTENT_DEFAULT;
1944 RTProcGetExecutablePath(pSolProc->szExecPath, sizeof(pSolProc->szExecPath)); /* this gets full path not just name */
1945 pSolProc->pszExecName = RTPathFilename(pSolProc->szExecPath);
1962 g_szCoreDumpDir, pSolProc->pszExecName, (int)pSolProc->Process);
1970 CORELOG((CORELOG_NAME "CreateCore: Taking Core %s from Thread %d\n", pSolCore->szCorePath, (int)pSolProc->hCurThread));
1981 GetOldProcessInfo(pSolCore, &pSolProc->ProcInfoOld);
1982 if (IsProcessArchNative(pSolProc))