Lines Matching refs:MachProcess
1 //===-- MachProcess.cpp -----------------------------------------*- C++ -*-===//
44 #include "MachProcess.h"
511 MachProcess::MachProcess() function
551 MachProcess::~MachProcess() { function
556 pid_t MachProcess::SetProcessID(pid_t pid) {
567 nub_state_t MachProcess::GetState() {
573 const char *MachProcess::ThreadGetName(nub_thread_t tid) {
577 nub_state_t MachProcess::ThreadGetState(nub_thread_t tid) {
581 nub_size_t MachProcess::GetNumThreads() const {
585 nub_thread_t MachProcess::GetThreadAtIndex(nub_size_t thread_idx) const {
590 MachProcess::GetThreadIDForMachPortNumber(thread_t mach_port_number) const {
594 nub_bool_t MachProcess::SyncThreadState(nub_thread_t tid) {
611 ThreadInfo::QoS MachProcess::GetRequestedQoS(nub_thread_t tid, nub_addr_t tsd,
616 nub_addr_t MachProcess::GetPThreadT(nub_thread_t tid) {
620 nub_addr_t MachProcess::GetDispatchQueueT(nub_thread_t tid) {
624 nub_addr_t MachProcess::GetTSDAddressForThread(
632 MachProcess::DeploymentInfo
633 MachProcess::GetDeploymentInfo(const struct load_command &lc,
726 MachProcess::GetPlatformString(unsigned char platform) {
772 bool MachProcess::GetMachOInformationFromMemory(
914 JSONGenerator::ObjectSP MachProcess::FormatDynamicLibrariesIntoJSON(
1010 JSONGenerator::ObjectSP MachProcess::GetLoadedDynamicLibrariesInfos(
1119 uint32_t MachProcess::GetPlatform() {
1121 m_platform = MachProcess::GetProcessPlatformViaDYLDSPI();
1125 uint32_t MachProcess::GetProcessPlatformViaDYLDSPI() {
1140 void MachProcess::GetAllLoadedBinariesViaDYLDSPI(
1165 MachProcess::GetAllLoadedLibrariesInfos(nub_process_t pid) {
1185 JSONGenerator::ObjectSP MachProcess::GetLibrariesInfoForAddresses(
1234 JSONGenerator::ObjectSP MachProcess::GetSharedCacheInfo(nub_process_t pid) {
1262 nub_thread_t MachProcess::GetCurrentThread() {
1266 nub_thread_t MachProcess::GetCurrentThreadMachPort() {
1271 nub_thread_t MachProcess::SetCurrentThread(nub_thread_t tid) {
1275 bool MachProcess::GetThreadStoppedReason(nub_thread_t tid,
1285 void MachProcess::DumpThreadStoppedReason(nub_thread_t tid) const {
1289 const char *MachProcess::GetThreadInfo(nub_thread_t tid) const {
1293 uint32_t MachProcess::GetCPUType() {
1295 m_cpu_type = MachProcess::GetCPUTypeForLocalProcess(m_pid);
1300 MachProcess::GetRegisterSetInfo(nub_thread_t tid,
1312 bool MachProcess::GetRegisterValue(nub_thread_t tid, uint32_t set, uint32_t reg,
1317 bool MachProcess::SetRegisterValue(nub_thread_t tid, uint32_t set, uint32_t reg,
1322 void MachProcess::SetState(nub_state_t new_state) {
1332 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::SetState(%s) ignoring new "
1338 "MachProcess::SetState(%s) ignoring redundant state change...",
1347 LOG_PROCESS, "MachProcess::SetState(%s) upating state (previous "
1370 void MachProcess::Clear(bool detaching) {
1394 bool MachProcess::StartSTDIOThread() {
1395 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s ( )", __FUNCTION__);
1397 return ::pthread_create(&m_stdio_thread, NULL, MachProcess::STDIOThread,
1401 void MachProcess::SetEnableAsyncProfiling(bool enable, uint64_t interval_usec,
1414 void MachProcess::StopProfileThread() {
1423 bool MachProcess::StartProfileThread() {
1424 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s ( )", __FUNCTION__);
1426 return ::pthread_create(&m_profile_thread, NULL, MachProcess::ProfileThread,
1430 nub_addr_t MachProcess::LookupSymbol(const char *name, const char *shlib) {
1437 bool MachProcess::Resume(const DNBThreadResumeActions &thread_actions) {
1438 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Resume ()");
1455 bool MachProcess::Kill(const struct timespec *timeout_abstime) {
1456 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Kill ()");
1458 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Kill() DoSIGSTOP() state = %s",
1466 err.LogThreaded("MachProcess::Kill() DoSIGSTOP() ::ptrace "
1490 bool MachProcess::Interrupt() {
1498 "MachProcess::Interrupt() - sent %i signal to interrupt process",
1503 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - failed to "
1508 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - previously "
1514 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - process already "
1520 bool MachProcess::Signal(int signal, const struct timespec *timeout_abstime) {
1522 "MachProcess::Signal (signal = %d, timeout = %p)", signal,
1529 "MachProcess::Signal (signal = %d, timeout "
1538 "MachProcess::Signal (signal = %d, timeout = %p) state = %s", signal,
1544 "MachProcess::Signal (signal = %d, timeout = %p) not waiting...",
1553 bool MachProcess::SendEvent(const char *event, DNBError &send_err) {
1555 "MachProcess::SendEvent (event = %s) to pid: %d", event,
1566 nub_state_t MachProcess::DoSIGSTOP(bool clear_bps_and_wps, bool allow_running,
1569 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::DoSIGSTOP() state = %s",
1591 "MachProcess::DoSIGSTOP() state = %s -- resuming process",
1609 "MachProcess::DoSIGSTOP() state = %s -- sending SIGSTOP",
1626 bool MachProcess::Detach() {
1627 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Detach()");
1631 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Detach() DoSIGSTOP() returned %s",
1678 // ReadMemory from the MachProcess level will always remove any software
1684 nub_size_t MachProcess::ReadMemory(nub_addr_t addr, nub_size_t size,
1700 // WriteMemory from the MachProcess level will always write memory around
1708 nub_size_t MachProcess::WriteMemory(nub_addr_t addr, nub_size_t size,
1771 void MachProcess::ReplyToAllExceptions() {
1805 void MachProcess::PrivateResume() {
1810 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::PrivateResume() - task 0x%x "
1816 "MachProcess::PrivateResume() - task 0x%x resuming...",
1837 DNBBreakpoint *MachProcess::CreateBreakpoint(nub_addr_t addr, nub_size_t length,
1839 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::CreateBreakpoint ( addr = "
1851 "MachProcess::CreateBreakpoint ( addr = "
1862 DNBBreakpoint *MachProcess::CreateWatchpoint(nub_addr_t addr, nub_size_t length,
1865 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::CreateWatchpoint ( addr = "
1883 "MachProcess::CreateWatchpoint ( addr = "
1888 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::CreateWatchpoint ( addr = "
1897 void MachProcess::DisableAllBreakpoints(bool remove) {
1898 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::%s (remove = %d )",
1907 void MachProcess::DisableAllWatchpoints(bool remove) {
1908 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::%s (remove = %d )",
1917 bool MachProcess::DisableBreakpoint(nub_addr_t addr, bool remove) {
1939 "MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, remove = %d )",
1952 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::DisableBreakpoint ( "
1985 DNBLogError("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
1991 DNBLogWarning("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
2001 "MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
2025 "MachProcess::DisableBreakpoint ( addr = "
2031 DNBLogError("MachProcess::DisableBreakpoint ( addr = "
2036 DNBLogError("MachProcess::DisableBreakpoint ( addr = "
2041 DNBLogWarning("MachProcess::DisableBreakpoint: unable to disable "
2047 DNBLogWarning("MachProcess::DisableBreakpoint: unable to read memory "
2053 DNBLogError("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, remove = "
2060 bool MachProcess::DisableWatchpoint(nub_addr_t addr, bool remove) {
2062 "MachProcess::%s(addr = 0x%8.8llx, remove = %d)",
2074 "MachProcess::DisableWatchpoint ( addr = 0x%8.8llx, remove = %d )",
2084 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::Disablewatchpoint ( "
2094 DNBLogError("MachProcess::DisableWatchpoint ( addr = 0x%8.8llx, remove = "
2101 uint32_t MachProcess::GetNumSupportedHardwareWatchpoints() const {
2105 bool MachProcess::EnableBreakpoint(nub_addr_t addr) {
2107 "MachProcess::EnableBreakpoint ( addr = 0x%8.8llx )",
2112 DNBLogWarning("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2143 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::"
2149 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx "
2154 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2159 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2164 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2169 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ) no "
2178 bool MachProcess::EnableWatchpoint(nub_addr_t addr) {
2180 "MachProcess::EnableWatchpoint(addr = 0x%8.8llx)",
2186 DNBLogWarning("MachProcess::EnableWatchpoint(addr = 0x%8.8llx): "
2206 void MachProcess::ExceptionMessageReceived(
2213 DNBLogThreadedIf(LOG_EXCEPTIONS, "MachProcess::ExceptionMessageReceived ( )");
2220 task_t MachProcess::ExceptionMessageBundleComplete() {
2278 MachProcess::GetCPUTypeForLocalProcess(m_pid);
2294 "MachProcess::ExceptionMessageBundleComplete(): "
2301 // 1 - We called MachProcess::Interrupt() but we stopped for another
2303 // 2 - We called MachProcess::Resume() (but still haven't gotten the
2313 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::"
2322 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::"
2325 "MachProcess::Interrupt()",
2338 // Let the thread list figure use the MachProcess to forward all
2374 MachProcess::CopyImageInfos(struct DNBExecutableImageInfo **image_infos,
2382 void MachProcess::SharedLibrariesUpdated() {
2391 void MachProcess::SetExitInfo(const char *info) {
2393 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s(\"%s\")", __FUNCTION__,
2397 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s(NULL)", __FUNCTION__);
2402 void MachProcess::AppendSTDOUT(char *s, size_t len) {
2403 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (<%llu> %s) ...", __FUNCTION__,
2413 size_t MachProcess::GetAvailableSTDOUT(char *buf, size_t buf_size) {
2414 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (&%p[%llu]) ...", __FUNCTION__,
2431 nub_addr_t MachProcess::GetDYLDAllImageInfosAddress() {
2454 JSONGenerator::ObjectSP MachProcess::GetDyldProcessState() {
2514 size_t MachProcess::GetAvailableSTDERR(char *buf, size_t buf_size) { return 0; }
2516 void *MachProcess::STDIOThread(void *arg) {
2517 MachProcess *proc = (MachProcess *)arg;
2519 "MachProcess::%s ( arg = %p ) thread starting...",
2636 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (%p): thread exiting...",
2641 void MachProcess::SignalAsyncProfileData(const char *info) {
2642 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (%s) ...", __FUNCTION__, info);
2651 size_t MachProcess::GetAsyncProfileData(char *buf, size_t buf_size) {
2652 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (&%p[%llu]) ...", __FUNCTION__,
2672 void *MachProcess::ProfileThread(void *arg) {
2673 MachProcess *proc = (MachProcess *)arg;
2675 "MachProcess::%s ( arg = %p ) thread starting...",
2713 pid_t MachProcess::AttachForDebug(
2728 DNBLogError ("MachProcess::AttachForDebug pid %d does not exist", pid);
2740 "[LaunchAttach] END (%d) MachProcess::AttachForDebug failed to start "
2756 DNBLogError("MachProcess::AttachForDebug failed to ptrace(PT_ATTACHEXC) "
2776 "[LaunchAttach] (%d) MachProcess::AttachForDebug error: failed to "
2787 "[LaunchAttach] (%d) MachProcess::AttachForDebug pid %d is "
2798 MachProcess::GetGenealogyInfoForThread(nub_thread_t tid, bool &timed_out) {
2804 MachProcess::GetGenealogyImageInfo(size_t idx) {
2808 bool MachProcess::GetOSVersionNumbers(uint64_t *major, uint64_t *minor,
2826 std::string MachProcess::GetMacCatalystVersionString() {
2876 const void *MachProcess::PrepareForAttach(const char *path,
2889 "MachProcess::PrepareForAttach(): path '%s' doesn't contain .app, "
3132 nub_process_t MachProcess::CheckForProcess(const void *attach_token,
3184 void MachProcess::CleanupAfterAttach(const void *attach_token,
3232 pid_t MachProcess::LaunchForDebug(
3256 m_pid = MachProcess::ForkChildForPTraceDebugging(path, argv, envp, this,
3302 m_pid = MachProcess::PosixSpawnChildForPTraceDebugging(
3369 pid_t MachProcess::PosixSpawnChildForPTraceDebugging(
3373 bool no_stdio, MachProcess *process, int disable_aslr, DNBError &err) {
3551 cpu_type_t pid_cpu_type = MachProcess::GetCPUTypeForLocalProcess(pid);
3553 "MachProcess::%s ( ) pid=%i, cpu_type=0x%8.8x",
3570 uint32_t MachProcess::GetCPUTypeForLocalProcess(pid_t pid) {
3588 pid_t MachProcess::ForkChildForPTraceDebugging(const char *path,
3591 MachProcess *process,
3596 // terminal so we can read it in our MachProcess::STDIOThread
3692 pid_t MachProcess::SBLaunchForDebug(const char *path, char const *argv[],
3705 m_pid = MachProcess::SBForkChildForPTraceDebugging(path, argv, envp, no_stdio,
3745 pid_t MachProcess::SBForkChildForPTraceDebugging(
3747 bool no_stdio, MachProcess *process, DNBError &launch_err) {
3912 pid_t MachProcess::BoardServiceLaunchForDebug(
3963 pid_t MachProcess::BoardServiceForkChildForPTraceDebugging(
4105 bool MachProcess::BoardServiceSendEvent(const char *event_data,
4186 void MachProcess::BKSCleanupAfterAttach(const void *attach_token,
4223 void MachProcess::FBSCleanupAfterAttach(const void *attach_token,
4260 void MachProcess::CalculateBoardStatus()
4287 bool MachProcess::ProcessUsingBackBoard() {
4292 bool MachProcess::ProcessUsingFrontBoard() {
4297 int MachProcess::GetInferiorAddrSize(pid_t pid) {