Lines Matching refs:MachProcess
1 //===-- MachProcess.cpp -----------------------------------------*- C++ -*-===//
44 #include "MachProcess.h"
512 MachProcess::MachProcess() function
549 MachProcess::~MachProcess() { function
554 pid_t MachProcess::SetProcessID(pid_t pid) {
565 nub_state_t MachProcess::GetState() {
571 const char *MachProcess::ThreadGetName(nub_thread_t tid) {
575 nub_state_t MachProcess::ThreadGetState(nub_thread_t tid) {
579 nub_size_t MachProcess::GetNumThreads() const {
583 nub_thread_t MachProcess::GetThreadAtIndex(nub_size_t thread_idx) const {
588 MachProcess::GetThreadIDForMachPortNumber(thread_t mach_port_number) const {
592 nub_bool_t MachProcess::SyncThreadState(nub_thread_t tid) {
609 ThreadInfo::QoS MachProcess::GetRequestedQoS(nub_thread_t tid, nub_addr_t tsd,
614 nub_addr_t MachProcess::GetPThreadT(nub_thread_t tid) {
618 nub_addr_t MachProcess::GetDispatchQueueT(nub_thread_t tid) {
622 nub_addr_t MachProcess::GetTSDAddressForThread(
630 MachProcess::DeploymentInfo
631 MachProcess::GetDeploymentInfo(const struct load_command &lc,
723 const char *MachProcess::GetPlatformString(unsigned char platform) {
767 bool MachProcess::GetMachOInformationFromMemory(
908 JSONGenerator::ObjectSP MachProcess::FormatDynamicLibrariesIntoJSON(
1004 JSONGenerator::ObjectSP MachProcess::GetLoadedDynamicLibrariesInfos(
1113 uint32_t MachProcess::GetPlatform() {
1115 m_platform = MachProcess::GetProcessPlatformViaDYLDSPI();
1119 uint32_t MachProcess::GetProcessPlatformViaDYLDSPI() {
1134 void MachProcess::GetAllLoadedBinariesViaDYLDSPI(
1159 MachProcess::GetAllLoadedLibrariesInfos(nub_process_t pid) {
1179 JSONGenerator::ObjectSP MachProcess::GetLibrariesInfoForAddresses(
1228 JSONGenerator::ObjectSP MachProcess::GetSharedCacheInfo(nub_process_t pid) {
1256 nub_thread_t MachProcess::GetCurrentThread() {
1260 nub_thread_t MachProcess::GetCurrentThreadMachPort() {
1265 nub_thread_t MachProcess::SetCurrentThread(nub_thread_t tid) {
1269 bool MachProcess::GetThreadStoppedReason(nub_thread_t tid,
1279 void MachProcess::DumpThreadStoppedReason(nub_thread_t tid) const {
1283 const char *MachProcess::GetThreadInfo(nub_thread_t tid) const {
1287 uint32_t MachProcess::GetCPUType() {
1289 m_cpu_type = MachProcess::GetCPUTypeForLocalProcess(m_pid);
1294 MachProcess::GetRegisterSetInfo(nub_thread_t tid,
1306 bool MachProcess::GetRegisterValue(nub_thread_t tid, uint32_t set, uint32_t reg,
1311 bool MachProcess::SetRegisterValue(nub_thread_t tid, uint32_t set, uint32_t reg,
1316 void MachProcess::SetState(nub_state_t new_state) {
1326 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::SetState(%s) ignoring new "
1332 "MachProcess::SetState(%s) ignoring redundant state change...",
1341 LOG_PROCESS, "MachProcess::SetState(%s) upating state (previous "
1364 void MachProcess::Clear(bool detaching) {
1388 bool MachProcess::StartSTDIOThread() {
1389 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s ( )", __FUNCTION__);
1391 return ::pthread_create(&m_stdio_thread, NULL, MachProcess::STDIOThread,
1395 void MachProcess::SetEnableAsyncProfiling(bool enable, uint64_t interval_usec,
1408 void MachProcess::StopProfileThread() {
1417 bool MachProcess::StartProfileThread() {
1418 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s ( )", __FUNCTION__);
1420 return ::pthread_create(&m_profile_thread, NULL, MachProcess::ProfileThread,
1424 nub_addr_t MachProcess::LookupSymbol(const char *name, const char *shlib) {
1431 bool MachProcess::Resume(const DNBThreadResumeActions &thread_actions) {
1432 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Resume ()");
1449 bool MachProcess::Kill(const struct timespec *timeout_abstime) {
1450 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Kill ()");
1452 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Kill() DoSIGSTOP() state = %s",
1460 err.LogThreaded("MachProcess::Kill() DoSIGSTOP() ::ptrace "
1484 bool MachProcess::Interrupt() {
1492 "MachProcess::Interrupt() - sent %i signal to interrupt process",
1497 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - failed to "
1502 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - previously "
1508 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - process already "
1514 bool MachProcess::Signal(int signal, const struct timespec *timeout_abstime) {
1516 "MachProcess::Signal (signal = %d, timeout = %p)", signal,
1523 "MachProcess::Signal (signal = %d, timeout "
1532 "MachProcess::Signal (signal = %d, timeout = %p) state = %s", signal,
1538 "MachProcess::Signal (signal = %d, timeout = %p) not waiting...",
1547 bool MachProcess::SendEvent(const char *event, DNBError &send_err) {
1549 "MachProcess::SendEvent (event = %s) to pid: %d", event,
1560 nub_state_t MachProcess::DoSIGSTOP(bool clear_bps_and_wps, bool allow_running,
1563 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::DoSIGSTOP() state = %s",
1585 "MachProcess::DoSIGSTOP() state = %s -- resuming process",
1603 "MachProcess::DoSIGSTOP() state = %s -- sending SIGSTOP",
1620 bool MachProcess::Detach() {
1621 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Detach()");
1625 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Detach() DoSIGSTOP() returned %s",
1672 // ReadMemory from the MachProcess level will always remove any software
1678 nub_size_t MachProcess::ReadMemory(nub_addr_t addr, nub_size_t size,
1694 // WriteMemory from the MachProcess level will always write memory around
1702 nub_size_t MachProcess::WriteMemory(nub_addr_t addr, nub_size_t size,
1765 void MachProcess::ReplyToAllExceptions() {
1799 void MachProcess::PrivateResume() {
1804 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::PrivateResume() - task 0x%x "
1810 "MachProcess::PrivateResume() - task 0x%x resuming...",
1831 DNBBreakpoint *MachProcess::CreateBreakpoint(nub_addr_t addr, nub_size_t length,
1833 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::CreateBreakpoint ( addr = "
1845 "MachProcess::CreateBreakpoint ( addr = "
1856 DNBBreakpoint *MachProcess::CreateWatchpoint(nub_addr_t addr, nub_size_t length,
1859 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::CreateWatchpoint ( addr = "
1877 "MachProcess::CreateWatchpoint ( addr = "
1882 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::CreateWatchpoint ( addr = "
1891 void MachProcess::DisableAllBreakpoints(bool remove) {
1892 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::%s (remove = %d )",
1901 void MachProcess::DisableAllWatchpoints(bool remove) {
1902 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::%s (remove = %d )",
1911 bool MachProcess::DisableBreakpoint(nub_addr_t addr, bool remove) {
1933 "MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, remove = %d )",
1946 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::DisableBreakpoint ( "
1979 DNBLogError("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
1985 DNBLogWarning("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
1995 "MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
2019 "MachProcess::DisableBreakpoint ( addr = "
2025 DNBLogError("MachProcess::DisableBreakpoint ( addr = "
2030 DNBLogError("MachProcess::DisableBreakpoint ( addr = "
2035 DNBLogWarning("MachProcess::DisableBreakpoint: unable to disable "
2041 DNBLogWarning("MachProcess::DisableBreakpoint: unable to read memory "
2047 DNBLogError("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, remove = "
2054 bool MachProcess::DisableWatchpoint(nub_addr_t addr, bool remove) {
2056 "MachProcess::%s(addr = 0x%8.8llx, remove = %d)",
2068 "MachProcess::DisableWatchpoint ( addr = 0x%8.8llx, remove = %d )",
2078 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::Disablewatchpoint ( "
2088 DNBLogError("MachProcess::DisableWatchpoint ( addr = 0x%8.8llx, remove = "
2095 uint32_t MachProcess::GetNumSupportedHardwareWatchpoints() const {
2099 bool MachProcess::EnableBreakpoint(nub_addr_t addr) {
2101 "MachProcess::EnableBreakpoint ( addr = 0x%8.8llx )",
2106 DNBLogWarning("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2137 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::"
2143 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx "
2148 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2153 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2158 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2163 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ) no "
2172 bool MachProcess::EnableWatchpoint(nub_addr_t addr) {
2174 "MachProcess::EnableWatchpoint(addr = 0x%8.8llx)",
2180 DNBLogWarning("MachProcess::EnableWatchpoint(addr = 0x%8.8llx): "
2200 void MachProcess::ExceptionMessageReceived(
2207 DNBLogThreadedIf(LOG_EXCEPTIONS, "MachProcess::ExceptionMessageReceived ( )");
2214 task_t MachProcess::ExceptionMessageBundleComplete() {
2272 MachProcess::GetCPUTypeForLocalProcess(m_pid);
2287 "MachProcess::ExceptionMessageBundleComplete(): "
2294 // 1 - We called MachProcess::Interrupt() but we stopped for another
2296 // 2 - We called MachProcess::Resume() (but still haven't gotten the
2306 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::"
2315 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::"
2318 "MachProcess::Interrupt()",
2331 // Let the thread list figure use the MachProcess to forward all
2367 MachProcess::CopyImageInfos(struct DNBExecutableImageInfo **image_infos,
2375 void MachProcess::SharedLibrariesUpdated() {
2384 void MachProcess::SetExitInfo(const char *info) {
2386 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s(\"%s\")", __FUNCTION__,
2390 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s(NULL)", __FUNCTION__);
2395 void MachProcess::AppendSTDOUT(char *s, size_t len) {
2396 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (<%llu> %s) ...", __FUNCTION__,
2406 size_t MachProcess::GetAvailableSTDOUT(char *buf, size_t buf_size) {
2407 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (&%p[%llu]) ...", __FUNCTION__,
2424 nub_addr_t MachProcess::GetDYLDAllImageInfosAddress() {
2429 size_t MachProcess::GetAvailableSTDERR(char *buf, size_t buf_size) { return 0; }
2431 void *MachProcess::STDIOThread(void *arg) {
2432 MachProcess *proc = (MachProcess *)arg;
2434 "MachProcess::%s ( arg = %p ) thread starting...",
2551 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (%p): thread exiting...",
2556 void MachProcess::SignalAsyncProfileData(const char *info) {
2557 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (%s) ...", __FUNCTION__, info);
2566 size_t MachProcess::GetAsyncProfileData(char *buf, size_t buf_size) {
2567 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (&%p[%llu]) ...", __FUNCTION__,
2587 void *MachProcess::ProfileThread(void *arg) {
2588 MachProcess *proc = (MachProcess *)arg;
2590 "MachProcess::%s ( arg = %p ) thread starting...",
2628 pid_t MachProcess::AttachForDebug(
2643 DNBLogError ("MachProcess::AttachForDebug pid %d does not exist", pid);
2655 "[LaunchAttach] END (%d) MachProcess::AttachForDebug failed to start "
2671 DNBLogError("MachProcess::AttachForDebug failed to ptrace(PT_ATTACHEXC) "
2691 "[LaunchAttach] (%d) MachProcess::AttachForDebug error: failed to "
2702 "[LaunchAttach] (%d) MachProcess::AttachForDebug pid %d is "
2713 MachProcess::GetGenealogyInfoForThread(nub_thread_t tid, bool &timed_out) {
2719 MachProcess::GetGenealogyImageInfo(size_t idx) {
2723 bool MachProcess::GetOSVersionNumbers(uint64_t *major, uint64_t *minor,
2741 std::string MachProcess::GetMacCatalystVersionString() {
2791 const void *MachProcess::PrepareForAttach(const char *path,
2804 "MachProcess::PrepareForAttach(): path '%s' doesn't contain .app, "
3047 nub_process_t MachProcess::CheckForProcess(const void *attach_token,
3099 void MachProcess::CleanupAfterAttach(const void *attach_token,
3147 pid_t MachProcess::LaunchForDebug(
3171 m_pid = MachProcess::ForkChildForPTraceDebugging(path, argv, envp, this,
3217 m_pid = MachProcess::PosixSpawnChildForPTraceDebugging(
3284 pid_t MachProcess::PosixSpawnChildForPTraceDebugging(
3288 bool no_stdio, MachProcess *process, int disable_aslr, DNBError &err) {
3466 cpu_type_t pid_cpu_type = MachProcess::GetCPUTypeForLocalProcess(pid);
3468 "MachProcess::%s ( ) pid=%i, cpu_type=0x%8.8x",
3485 uint32_t MachProcess::GetCPUTypeForLocalProcess(pid_t pid) {
3503 pid_t MachProcess::ForkChildForPTraceDebugging(const char *path,
3506 MachProcess *process,
3511 // terminal so we can read it in our MachProcess::STDIOThread
3607 pid_t MachProcess::SBLaunchForDebug(const char *path, char const *argv[],
3620 m_pid = MachProcess::SBForkChildForPTraceDebugging(path, argv, envp, no_stdio,
3660 pid_t MachProcess::SBForkChildForPTraceDebugging(
3662 bool no_stdio, MachProcess *process, DNBError &launch_err) {
3827 pid_t MachProcess::BoardServiceLaunchForDebug(
3878 pid_t MachProcess::BoardServiceForkChildForPTraceDebugging(
4020 bool MachProcess::BoardServiceSendEvent(const char *event_data,
4101 void MachProcess::BKSCleanupAfterAttach(const void *attach_token,
4138 void MachProcess::FBSCleanupAfterAttach(const void *attach_token,
4175 void MachProcess::CalculateBoardStatus()
4202 bool MachProcess::ProcessUsingBackBoard() {
4207 bool MachProcess::ProcessUsingFrontBoard() {
4212 int MachProcess::GetInferiorAddrSize(pid_t pid) {