Lines Matching defs:MachProcess

1 //===-- MachProcess.cpp -----------------------------------------*- C++ -*-===//
45 #include "MachProcess.h"
522 MachProcess::MachProcess()
562 MachProcess::~MachProcess() {
567 pid_t MachProcess::SetProcessID(pid_t pid) {
578 nub_state_t MachProcess::GetState() {
584 const char *MachProcess::ThreadGetName(nub_thread_t tid) {
588 nub_state_t MachProcess::ThreadGetState(nub_thread_t tid) {
592 nub_size_t MachProcess::GetNumThreads() const {
596 nub_thread_t MachProcess::GetThreadAtIndex(nub_size_t thread_idx) const {
601 MachProcess::GetThreadIDForMachPortNumber(thread_t mach_port_number) const {
605 nub_bool_t MachProcess::SyncThreadState(nub_thread_t tid) {
622 ThreadInfo::QoS MachProcess::GetRequestedQoS(nub_thread_t tid, nub_addr_t tsd,
627 nub_addr_t MachProcess::GetPThreadT(nub_thread_t tid) {
631 nub_addr_t MachProcess::GetDispatchQueueT(nub_thread_t tid) {
635 nub_addr_t MachProcess::GetTSDAddressForThread(
643 MachProcess::DeploymentInfo
644 MachProcess::GetDeploymentInfo(const struct load_command &lc,
737 MachProcess::GetPlatformString(unsigned char platform) {
787 bool MachProcess::GetMachOInformationFromMemory(
929 JSONGenerator::ObjectSP MachProcess::FormatDynamicLibrariesIntoJSON(
1043 uint32_t MachProcess::GetPlatform() {
1045 m_platform = MachProcess::GetProcessPlatformViaDYLDSPI();
1049 uint32_t MachProcess::GetProcessPlatformViaDYLDSPI() {
1064 void MachProcess::GetAllLoadedBinariesViaDYLDSPI(
1096 MachProcess::GetAllLoadedLibrariesInfos(nub_process_t pid,
1117 MachProcess::GetMainBinaryCPUTypes(nub_process_t pid) {
1136 JSONGenerator::ObjectSP MachProcess::GetLibrariesInfoForAddresses(
1186 JSONGenerator::ObjectSP MachProcess::GetSharedCacheInfo(nub_process_t pid) {
1214 nub_thread_t MachProcess::GetCurrentThread() {
1218 nub_thread_t MachProcess::GetCurrentThreadMachPort() {
1223 nub_thread_t MachProcess::SetCurrentThread(nub_thread_t tid) {
1227 bool MachProcess::GetThreadStoppedReason(nub_thread_t tid,
1239 void MachProcess::DumpThreadStoppedReason(nub_thread_t tid) const {
1243 const char *MachProcess::GetThreadInfo(nub_thread_t tid) const {
1247 uint32_t MachProcess::GetCPUType() {
1249 m_cpu_type = MachProcess::GetCPUTypeForLocalProcess(m_pid);
1254 MachProcess::GetRegisterSetInfo(nub_thread_t tid,
1266 bool MachProcess::GetRegisterValue(nub_thread_t tid, uint32_t set, uint32_t reg,
1271 bool MachProcess::SetRegisterValue(nub_thread_t tid, uint32_t set, uint32_t reg,
1276 void MachProcess::SetState(nub_state_t new_state) {
1286 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::SetState(%s) ignoring new "
1292 "MachProcess::SetState(%s) ignoring redundant state change...",
1301 LOG_PROCESS, "MachProcess::SetState(%s) upating state (previous "
1324 void MachProcess::Clear(bool detaching) {
1348 bool MachProcess::StartSTDIOThread() {
1349 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s ( )", __FUNCTION__);
1351 return ::pthread_create(&m_stdio_thread, NULL, MachProcess::STDIOThread,
1355 void MachProcess::SetEnableAsyncProfiling(bool enable, uint64_t interval_usec,
1368 void MachProcess::StopProfileThread() {
1393 void MachProcess::RefineWatchpointStopInfo(
1401 "MachProcess::RefineWatchpointStopInfo "
1441 "MachProcess::RefineWatchpointStopInfo mach exception "
1508 bool MachProcess::StartProfileThread() {
1509 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s ( )", __FUNCTION__);
1511 return ::pthread_create(&m_profile_thread, NULL, MachProcess::ProfileThread,
1515 nub_addr_t MachProcess::LookupSymbol(const char *name, const char *shlib) {
1522 bool MachProcess::Resume(const DNBThreadResumeActions &thread_actions) {
1523 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Resume ()");
1540 bool MachProcess::Kill(const struct timespec *timeout_abstime) {
1541 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Kill ()");
1543 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Kill() DoSIGSTOP() state = %s",
1551 err.LogThreaded("MachProcess::Kill() DoSIGSTOP() ::ptrace "
1575 bool MachProcess::Interrupt() {
1583 "MachProcess::Interrupt() - sent %i signal to interrupt process",
1588 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - failed to "
1593 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - previously "
1599 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Interrupt() - process already "
1605 bool MachProcess::Signal(int signal, const struct timespec *timeout_abstime) {
1607 "MachProcess::Signal (signal = %d, timeout = %p)", signal,
1614 "MachProcess::Signal (signal = %d, timeout "
1623 "MachProcess::Signal (signal = %d, timeout = %p) state = %s", signal,
1629 "MachProcess::Signal (signal = %d, timeout = %p) not waiting...",
1638 bool MachProcess::SendEvent(const char *event, DNBError &send_err) {
1640 "MachProcess::SendEvent (event = %s) to pid: %d", event,
1651 nub_state_t MachProcess::DoSIGSTOP(bool clear_bps_and_wps, bool allow_running,
1654 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::DoSIGSTOP() state = %s",
1676 "MachProcess::DoSIGSTOP() state = %s -- resuming process",
1694 "MachProcess::DoSIGSTOP() state = %s -- sending SIGSTOP",
1711 bool MachProcess::Detach() {
1712 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Detach()");
1716 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::Detach() DoSIGSTOP() returned %s",
1763 // ReadMemory from the MachProcess level will always remove any software
1769 nub_size_t MachProcess::ReadMemory(nub_addr_t addr, nub_size_t size,
1785 // WriteMemory from the MachProcess level will always write memory around
1793 nub_size_t MachProcess::WriteMemory(nub_addr_t addr, nub_size_t size,
1856 void MachProcess::ReplyToAllExceptions() {
1890 void MachProcess::PrivateResume() {
1895 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::PrivateResume() - task 0x%x "
1901 "MachProcess::PrivateResume() - task 0x%x resuming...",
1922 DNBBreakpoint *MachProcess::CreateBreakpoint(nub_addr_t addr, nub_size_t length,
1924 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::CreateBreakpoint ( addr = "
1936 "MachProcess::CreateBreakpoint ( addr = "
1947 DNBBreakpoint *MachProcess::CreateWatchpoint(nub_addr_t addr, nub_size_t length,
1950 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::CreateWatchpoint ( addr = "
1968 "MachProcess::CreateWatchpoint ( addr = "
1973 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::CreateWatchpoint ( addr = "
1982 void MachProcess::DisableAllBreakpoints(bool remove) {
1983 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::%s (remove = %d )",
1992 void MachProcess::DisableAllWatchpoints(bool remove) {
1993 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::%s (remove = %d )",
2002 bool MachProcess::DisableBreakpoint(nub_addr_t addr, bool remove) {
2024 "MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, remove = %d )",
2037 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::DisableBreakpoint ( "
2070 DNBLogError("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
2076 DNBLogWarning("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
2086 "MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, "
2110 "MachProcess::DisableBreakpoint ( addr = "
2116 DNBLogError("MachProcess::DisableBreakpoint ( addr = "
2121 DNBLogError("MachProcess::DisableBreakpoint ( addr = "
2126 DNBLogWarning("MachProcess::DisableBreakpoint: unable to disable "
2132 DNBLogWarning("MachProcess::DisableBreakpoint: unable to read memory "
2138 DNBLogError("MachProcess::DisableBreakpoint ( addr = 0x%8.8llx, remove = "
2145 bool MachProcess::DisableWatchpoint(nub_addr_t addr, bool remove) {
2147 "MachProcess::%s(addr = 0x%8.8llx, remove = %d)",
2159 "MachProcess::DisableWatchpoint ( addr = 0x%8.8llx, remove = %d )",
2169 DNBLogThreadedIf(LOG_WATCHPOINTS, "MachProcess::Disablewatchpoint ( "
2179 DNBLogError("MachProcess::DisableWatchpoint ( addr = 0x%8.8llx, remove = "
2186 uint32_t MachProcess::GetNumSupportedHardwareWatchpoints() const {
2190 bool MachProcess::EnableBreakpoint(nub_addr_t addr) {
2192 "MachProcess::EnableBreakpoint ( addr = 0x%8.8llx )",
2197 DNBLogWarning("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2228 DNBLogThreadedIf(LOG_BREAKPOINTS, "MachProcess::"
2234 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx "
2239 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2244 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2249 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ): "
2254 DNBLogError("MachProcess::EnableBreakpoint ( addr = 0x%8.8llx ) no "
2263 bool MachProcess::EnableWatchpoint(nub_addr_t addr) {
2265 "MachProcess::EnableWatchpoint(addr = 0x%8.8llx)",
2271 DNBLogWarning("MachProcess::EnableWatchpoint(addr = 0x%8.8llx): "
2291 void MachProcess::ExceptionMessageReceived(
2298 DNBLogThreadedIf(LOG_EXCEPTIONS, "MachProcess::ExceptionMessageReceived ( )");
2305 task_t MachProcess::ExceptionMessageBundleComplete() {
2363 MachProcess::GetCPUTypeForLocalProcess(m_pid);
2379 "MachProcess::ExceptionMessageBundleComplete(): "
2386 // 1 - We called MachProcess::Interrupt() but we stopped for another
2388 // 2 - We called MachProcess::Resume() (but still haven't gotten the
2398 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::"
2407 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::"
2410 "MachProcess::Interrupt()",
2423 // Let the thread list figure use the MachProcess to forward all
2459 MachProcess::CopyImageInfos(struct DNBExecutableImageInfo **image_infos,
2467 void MachProcess::SharedLibrariesUpdated() {
2476 void MachProcess::SetExitInfo(const char *info) {
2478 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s(\"%s\")", __FUNCTION__,
2482 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s(NULL)", __FUNCTION__);
2487 void MachProcess::AppendSTDOUT(char *s, size_t len) {
2488 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (<%llu> %s) ...", __FUNCTION__,
2498 size_t MachProcess::GetAvailableSTDOUT(char *buf, size_t buf_size) {
2499 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (&%p[%llu]) ...", __FUNCTION__,
2516 nub_addr_t MachProcess::GetDYLDAllImageInfosAddress() {
2539 JSONGenerator::ObjectSP MachProcess::GetDyldProcessState() {
2599 size_t MachProcess::GetAvailableSTDERR(char *buf, size_t buf_size) { return 0; }
2601 void *MachProcess::STDIOThread(void *arg) {
2602 MachProcess *proc = (MachProcess *)arg;
2604 "MachProcess::%s ( arg = %p ) thread starting...",
2721 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (%p): thread exiting...",
2726 void MachProcess::SignalAsyncProfileData(const char *info) {
2727 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (%s) ...", __FUNCTION__, info);
2736 size_t MachProcess::GetAsyncProfileData(char *buf, size_t buf_size) {
2737 DNBLogThreadedIf(LOG_PROCESS, "MachProcess::%s (&%p[%llu]) ...", __FUNCTION__,
2757 void *MachProcess::ProfileThread(void *arg) {
2758 MachProcess *proc = (MachProcess *)arg;
2760 "MachProcess::%s ( arg = %p ) thread starting...",
2798 pid_t MachProcess::AttachForDebug(
2813 DNBLogError ("MachProcess::AttachForDebug pid %d does not exist", pid);
2825 "[LaunchAttach] END (%d) MachProcess::AttachForDebug failed to start "
2841 DNBLogError("MachProcess::AttachForDebug failed to ptrace(PT_ATTACHEXC) "
2861 "[LaunchAttach] (%d) MachProcess::AttachForDebug error: failed to "
2877 "[LaunchAttach] (%d) MachProcess::AttachForDebug pid %d is "
2888 MachProcess::GetGenealogyInfoForThread(nub_thread_t tid, bool &timed_out) {
2894 MachProcess::GetGenealogyImageInfo(size_t idx) {
2898 bool MachProcess::GetOSVersionNumbers(uint64_t *major, uint64_t *minor,
2916 std::string MachProcess::GetMacCatalystVersionString() {
2928 nub_process_t MachProcess::GetParentProcessID(nub_process_t child_pid) {
2937 bool MachProcess::ProcessIsBeingDebugged(nub_process_t pid) {
2986 const void *MachProcess::PrepareForAttach(const char *path,
2999 "MachProcess::PrepareForAttach(): path '%s' doesn't contain .app, "
3242 nub_process_t MachProcess::CheckForProcess(const void *attach_token,
3294 void MachProcess::CleanupAfterAttach(const void *attach_token,
3342 pid_t MachProcess::LaunchForDebug(
3366 m_pid = MachProcess::ForkChildForPTraceDebugging(path, argv, envp, this,
3412 m_pid = MachProcess::PosixSpawnChildForPTraceDebugging(
3485 pid_t MachProcess::PosixSpawnChildForPTraceDebugging(
3489 bool no_stdio, MachProcess *process, int disable_aslr, DNBError &err) {
3667 cpu_type_t pid_cpu_type = MachProcess::GetCPUTypeForLocalProcess(pid);
3669 "MachProcess::%s ( ) pid=%i, cpu_type=0x%8.8x",
3686 uint32_t MachProcess::GetCPUTypeForLocalProcess(pid_t pid) {
3704 pid_t MachProcess::ForkChildForPTraceDebugging(const char *path,
3707 MachProcess *process,
3712 // terminal so we can read it in our MachProcess::STDIOThread
3808 pid_t MachProcess::SBLaunchForDebug(const char *path, char const *argv[],
3821 m_pid = MachProcess::SBForkChildForPTraceDebugging(path, argv, envp, no_stdio,
3865 pid_t MachProcess::SBForkChildForPTraceDebugging(
3867 bool no_stdio, MachProcess *process, DNBError &launch_err) {
4032 pid_t MachProcess::BoardServiceLaunchForDebug(
4087 pid_t MachProcess::BoardServiceForkChildForPTraceDebugging(
4229 bool MachProcess::BoardServiceSendEvent(const char *event_data,
4310 void MachProcess::BKSCleanupAfterAttach(const void *attach_token,
4347 void MachProcess::FBSCleanupAfterAttach(const void *attach_token,
4384 void MachProcess::CalculateBoardStatus()
4411 bool MachProcess::ProcessUsingBackBoard() {
4416 bool MachProcess::ProcessUsingFrontBoard() {
4421 int MachProcess::GetInferiorAddrSize(pid_t pid) {