Lines Matching full:pid
80 // Add PID to the shared process pointer map.
85 static nub_bool_t AddProcessToMap(nub_process_t pid, MachProcessSP &procSP) {
88 process_map->insert(std::make_pair(pid, procSP));
94 // Remove the shared pointer for PID from the process map.
98 // RemoveProcessFromMap (nub_process_t pid)
103 // return process_map->erase(pid);
108 // Get the shared pointer for PID from the existing process map.
112 static nub_bool_t GetProcessSP(nub_process_t pid, MachProcessSP &procSP) {
115 ProcessMapIter pos = process_map->find(pid);
163 const pid_t pid = (pid_t)death_event.ident;
164 const pid_t child_pid = waitpid(pid, &status, 0);
180 if (child_pid == abs(pid)) {
208 "waitpid_process_thread (): setting exit status for pid = %i to %i",
217 static bool spawn_kqueue_thread(pid_t pid) {
223 DNBLogError("Could not get kqueue for pid = %i.", pid);
229 EV_SET(®_event, pid, EVFILT_PROC, EV_ADD,
235 "Failed to register kqueue NOTE_EXIT event for pid %i, error: %d.", pid,
253 const pid_t pid = (pid_t)(intptr_t)arg;
270 pid_t child_pid = waitpid(pid, &status, 0);
271 DNBLogThreadedIf(LOG_PROCESS, "waitpid_thread (): waitpid (pid = %i, "
273 pid, child_pid, status, errno);
286 "waitpid_thread (): setting exit status for pid = %i to %i",
297 "exit status to an invalid value (-1) for pid "
299 pid);
300 DNBProcessSetExitStatus(pid, -1);
303 static bool spawn_waitpid_thread(pid_t pid) {
305 bool success = spawn_kqueue_thread(pid);
312 ::pthread_create(&thread, NULL, waitpid_thread, (void *)(intptr_t)pid);
353 pid_t pid = processSP->LaunchForDebug(
369 DNBLogThreadedIf(LOG_PROCESS, "(DebugNub) new pid is %d...", pid);
371 if (pid != INVALID_NUB_PROCESS) {
373 spawn_waitpid_thread(pid);
381 kill(SIGKILL, pid);
386 "failed to get the task for process %i: %s", pid,
401 pid, ent_name);
405 bool res = AddProcessToMap(pid, processSP);
408 return pid;
415 // If there is one process with a given name, return the pid for that process.
507 pid_t pid = INVALID_NUB_PROCESS;
510 DNBLogThreadedIf(LOG_PROCESS, "(DebugNub) attaching to pid %d...",
512 pid =
516 if (pid != INVALID_NUB_PROCESS) {
517 bool res = AddProcessToMap(pid, processSP);
520 spawn_waitpid_thread(pid);
524 while (pid != INVALID_NUB_PROCESS) {
530 __FUNCTION__, pid);
532 DNBProcessWaitForEvents(pid, eEventProcessRunningStateChanged |
540 __FUNCTION__, pid, set_events);
547 pid = INVALID_NUB_PROCESS;
551 nub_state_t pid_state = DNBProcessGetState(pid);
555 __FUNCTION__, pid, DNBStateAsString(pid_state));
572 return pid;
582 DNBProcessResetEvents(pid, set_events);
624 JSONGenerator::ObjectSP DNBGetDyldProcessState(nub_process_t pid) {
626 if (GetProcessSP(pid, procSP)) {
750 nub_process_t pid;
751 pid = MachProcess::CheckForProcess(attach_token, launch_flavor);
752 if (pid != INVALID_NUB_PROCESS) {
753 waitfor_pid = pid;
841 DNBLogThreadedIf(LOG_PROCESS, "Attaching to %s with pid %i...\n",
863 nub_bool_t DNBProcessDetach(nub_process_t pid) {
865 if (GetProcessSP(pid, procSP)) {
868 "Disabling breakpoints and watchpoints, and detaching from %d.", pid);
876 nub_bool_t DNBProcessKill(nub_process_t pid) {
878 if (GetProcessSP(pid, procSP)) {
884 nub_bool_t DNBProcessSignal(nub_process_t pid, int signal) {
886 if (GetProcessSP(pid, procSP)) {
892 nub_bool_t DNBProcessInterrupt(nub_process_t pid) {
894 if (GetProcessSP(pid, procSP))
899 nub_bool_t DNBProcessSendEvent(nub_process_t pid, const char *event) {
901 if (GetProcessSP(pid, procSP)) {
909 nub_bool_t DNBProcessIsAlive(nub_process_t pid) {
911 if (GetProcessSP(pid, procSP)) {
918 nub_state_t DNBProcessGetState(nub_process_t pid) {
920 if (GetProcessSP(pid, procSP)) {
927 nub_bool_t DNBProcessGetExitStatus(nub_process_t pid, int *status) {
929 if (GetProcessSP(pid, procSP)) {
935 nub_bool_t DNBProcessSetExitStatus(nub_process_t pid, int status) {
937 if (GetProcessSP(pid, procSP)) {
944 const char *DNBProcessGetExitInfo(nub_process_t pid) {
946 if (GetProcessSP(pid, procSP)) {
952 nub_bool_t DNBProcessSetExitInfo(nub_process_t pid, const char *info) {
954 if (GetProcessSP(pid, procSP)) {
961 const char *DNBThreadGetName(nub_process_t pid, nub_thread_t tid) {
963 if (GetProcessSP(pid, procSP))
969 DNBThreadGetIdentifierInfo(nub_process_t pid, nub_thread_t tid,
972 if (GetProcessSP(pid, procSP))
977 nub_state_t DNBThreadGetState(nub_process_t pid, nub_thread_t tid) {
979 if (GetProcessSP(pid, procSP)) {
1013 Genealogy::ThreadActivitySP DNBGetGenealogyInfoForThread(nub_process_t pid,
1018 if (GetProcessSP(pid, procSP))
1023 Genealogy::ProcessExecutableInfoSP DNBGetGenealogyImageInfo(nub_process_t pid,
1027 if (GetProcessSP(pid, procSP)) {
1033 ThreadInfo::QoS DNBGetRequestedQoSForThread(nub_process_t pid, nub_thread_t tid,
1037 if (GetProcessSP(pid, procSP)) {
1043 nub_addr_t DNBGetPThreadT(nub_process_t pid, nub_thread_t tid) {
1045 if (GetProcessSP(pid, procSP)) {
1051 nub_addr_t DNBGetDispatchQueueT(nub_process_t pid, nub_thread_t tid) {
1053 if (GetProcessSP(pid, procSP)) {
1060 DNBGetTSDAddressForThread(nub_process_t pid, nub_thread_t tid,
1065 if (GetProcessSP(pid, procSP)) {
1074 DNBGetMainBinaryCPUTypes(nub_process_t pid) {
1076 if (GetProcessSP(pid, procSP))
1077 return procSP->GetMainBinaryCPUTypes(pid);
1082 DNBGetAllLoadedLibrariesInfos(nub_process_t pid, bool report_load_commands) {
1084 if (GetProcessSP(pid, procSP)) {
1085 return procSP->GetAllLoadedLibrariesInfos(pid, report_load_commands);
1091 DNBGetLibrariesInfoForAddresses(nub_process_t pid,
1094 if (GetProcessSP(pid, procSP)) {
1095 return procSP->GetLibrariesInfoForAddresses(pid, macho_addresses);
1100 JSONGenerator::ObjectSP DNBGetSharedCacheInfo(nub_process_t pid) {
1102 if (GetProcessSP(pid, procSP)) {
1103 return procSP->GetSharedCacheInfo(pid);
1108 const char *DNBProcessGetExecutablePath(nub_process_t pid) {
1110 if (GetProcessSP(pid, procSP)) {
1116 nub_size_t DNBProcessGetArgumentCount(nub_process_t pid) {
1118 if (GetProcessSP(pid, procSP)) {
1124 const char *DNBProcessGetArgumentAtIndex(nub_process_t pid, nub_size_t idx) {
1126 if (GetProcessSP(pid, procSP)) {
1133 nub_bool_t DNBProcessResume(nub_process_t pid,
1136 DNBLogThreadedIf(LOG_PROCESS, "%s(pid = %4.4x)", __FUNCTION__, pid);
1138 if (GetProcessSP(pid, procSP)) {
1156 nub_bool_t DNBProcessHalt(nub_process_t pid) {
1157 DNBLogThreadedIf(LOG_PROCESS, "%s(pid = %4.4x)", __FUNCTION__, pid);
1159 if (GetProcessSP(pid, procSP))
1165 // DNBThreadResume (nub_process_t pid, nub_thread_t tid, nub_bool_t step)
1167 // DNBLogThreadedIf(LOG_THREAD, "%s(pid = %4.4x, tid = %4.4x, step = %u)",
1168 // __FUNCTION__, pid, tid, (uint32_t)step);
1170 // if (GetProcessSP (pid, procSP))
1178 // DNBThreadResumeWithSignal (nub_process_t pid, nub_thread_t tid, nub_bool_t
1181 // DNBLogThreadedIf(LOG_THREAD, "%s(pid = %4.4x, tid = %4.4x, step = %u,
1182 // signal = %i)", __FUNCTION__, pid, tid, (uint32_t)step, signal);
1184 // if (GetProcessSP (pid, procSP))
1191 nub_event_t DNBProcessWaitForEvents(nub_process_t pid, nub_event_t event_mask,
1196 if (GetProcessSP(pid, procSP)) {
1205 void DNBProcessResetEvents(nub_process_t pid, nub_event_t event_mask) {
1207 if (GetProcessSP(pid, procSP))
1212 nub_bool_t DNBBreakpointSet(nub_process_t pid, nub_addr_t addr, nub_size_t size,
1215 if (GetProcessSP(pid, procSP))
1220 nub_bool_t DNBBreakpointClear(nub_process_t pid, nub_addr_t addr) {
1222 if (GetProcessSP(pid, procSP))
1228 nub_bool_t DNBWatchpointSet(nub_process_t pid, nub_addr_t addr, nub_size_t size,
1231 if (GetProcessSP(pid, procSP))
1236 nub_bool_t DNBWatchpointClear(nub_process_t pid, nub_addr_t addr) {
1238 if (GetProcessSP(pid, procSP))
1244 uint32_t DNBWatchpointGetNumSupportedHWP(nub_process_t pid) {
1246 if (GetProcessSP(pid, procSP))
1251 // Read memory in the address space of process PID. This call will take
1256 nub_size_t DNBProcessMemoryRead(nub_process_t pid, nub_addr_t addr,
1259 if (GetProcessSP(pid, procSP))
1264 uint64_t DNBProcessMemoryReadInteger(nub_process_t pid, nub_addr_t addr,
1276 if (DNBProcessMemoryRead(pid, addr, integer_size, &ints) == integer_size) {
1300 nub_addr_t DNBProcessMemoryReadPointer(nub_process_t pid, nub_addr_t addr) {
1301 cpu_type_t cputype = DNBProcessGetCPUType(pid);
1304 return DNBProcessMemoryReadInteger(pid, addr, pointer_size, 0);
1309 std::string DNBProcessMemoryReadCString(nub_process_t pid, nub_addr_t addr) {
1318 DNBProcessMemoryRead(pid, curr_addr, max_buffer_cstr_length, buffer);
1328 std::string DNBProcessMemoryReadCStringFixed(nub_process_t pid, nub_addr_t addr,
1333 nub_size_t bytes_read = DNBProcessMemoryRead(pid, addr, fixed_length, buffer);
1339 // Write memory to the address space of process PID. This call will take
1344 nub_size_t DNBProcessMemoryWrite(nub_process_t pid, nub_addr_t addr,
1347 if (GetProcessSP(pid, procSP))
1352 nub_addr_t DNBProcessMemoryAllocate(nub_process_t pid, nub_size_t size,
1355 if (GetProcessSP(pid, procSP))
1360 nub_bool_t DNBProcessMemoryDeallocate(nub_process_t pid, nub_addr_t addr) {
1362 if (GetProcessSP(pid, procSP))
1367 // Find attributes of the memory region that contains ADDR for process PID,
1379 int DNBProcessMemoryRegionInfo(nub_process_t pid, nub_addr_t addr,
1382 if (GetProcessSP(pid, procSP))
1388 std::string DNBProcessGetProfileData(nub_process_t pid,
1391 if (GetProcessSP(pid, procSP))
1397 nub_bool_t DNBProcessSetEnableAsyncProfiling(nub_process_t pid,
1402 if (GetProcessSP(pid, procSP)) {
1411 nub_size_t DNBProcessGetNumThreads(nub_process_t pid) {
1413 if (GetProcessSP(pid, procSP))
1419 nub_thread_t DNBProcessGetCurrentThread(nub_process_t pid) {
1421 if (GetProcessSP(pid, procSP))
1427 nub_thread_t DNBProcessGetCurrentThreadMachPort(nub_process_t pid) {
1429 if (GetProcessSP(pid, procSP))
1435 nub_thread_t DNBProcessSetCurrentThread(nub_process_t pid, nub_thread_t tid) {
1437 if (GetProcessSP(pid, procSP))
1444 nub_bool_t DNBThreadGetStopReason(nub_process_t pid, nub_thread_t tid,
1447 if (GetProcessSP(pid, procSP))
1457 const char *DNBThreadGetInfo(nub_process_t pid, nub_thread_t tid) {
1459 if (GetProcessSP(pid, procSP))
1465 nub_thread_t DNBProcessGetThreadAtIndex(nub_process_t pid, size_t thread_idx) {
1467 if (GetProcessSP(pid, procSP))
1474 nub_bool_t DNBProcessSyncThreadState(nub_process_t pid, nub_thread_t tid) {
1476 if (GetProcessSP(pid, procSP))
1481 nub_addr_t DNBProcessGetSharedLibraryInfoAddress(nub_process_t pid) {
1484 if (GetProcessSP(pid, procSP))
1489 nub_bool_t DNBProcessSharedLibrariesUpdated(nub_process_t pid) {
1491 if (GetProcessSP(pid, procSP)) {
1499 DNBGetDeploymentInfo(nub_process_t pid, bool is_executable,
1504 if (GetProcessSP(pid, procSP)) {
1527 DNBProcessGetSharedLibraryInfo(nub_process_t pid, nub_bool_t only_changed,
1530 if (GetProcessSP(pid, procSP))
1548 nub_bool_t DNBThreadGetRegisterValueByID(nub_process_t pid, nub_thread_t tid,
1553 if (GetProcessSP(pid, procSP)) {
1560 nub_bool_t DNBThreadSetRegisterValueByID(nub_process_t pid, nub_thread_t tid,
1565 if (GetProcessSP(pid, procSP))
1571 nub_size_t DNBThreadGetRegisterContext(nub_process_t pid, nub_thread_t tid,
1574 if (GetProcessSP(pid, procSP)) {
1582 nub_size_t DNBThreadSetRegisterContext(nub_process_t pid, nub_thread_t tid,
1585 if (GetProcessSP(pid, procSP)) {
1592 uint32_t DNBThreadSaveRegisterState(nub_process_t pid, nub_thread_t tid) {
1595 if (GetProcessSP(pid, procSP))
1600 nub_bool_t DNBThreadRestoreRegisterState(nub_process_t pid, nub_thread_t tid,
1604 if (GetProcessSP(pid, procSP))
1611 nub_bool_t DNBThreadGetRegisterValueByName(nub_process_t pid, nub_thread_t tid,
1617 if (GetProcessSP(pid, procSP)) {
1679 nub_bool_t DNBProcessSetNameToAddressCallback(nub_process_t pid,
1683 if (GetProcessSP(pid, procSP)) {
1693 nub_process_t pid, DNBCallbackCopyExecutableImageInfos callback,
1696 if (GetProcessSP(pid, procSP)) {
1703 nub_addr_t DNBProcessLookupAddress(nub_process_t pid, const char *name,
1706 if (GetProcessSP(pid, procSP)) {
1712 nub_size_t DNBProcessGetAvailableSTDOUT(nub_process_t pid, char *buf,
1715 if (GetProcessSP(pid, procSP))
1720 nub_size_t DNBProcessGetAvailableSTDERR(nub_process_t pid, char *buf,
1723 if (GetProcessSP(pid, procSP))
1728 nub_size_t DNBProcessGetAvailableProfileData(nub_process_t pid, char *buf,
1731 if (GetProcessSP(pid, procSP))
1736 nub_size_t DNBProcessGetStopCount(nub_process_t pid) {
1738 if (GetProcessSP(pid, procSP))
1743 uint32_t DNBProcessGetCPUType(nub_process_t pid) {
1745 if (GetProcessSP(pid, procSP))
1911 bool DNBProcessIsBeingDebugged(nub_process_t pid) {
1912 return MachProcess::ProcessIsBeingDebugged(pid);