I only have one thread in operation, so I don't expect there do be any race conditions unless LLDB has its own threads under the hood. So far as I can tell, this lock fails for some reason:
Process::StopLocker stop_locker; if (stop_locker.TryLock(&process_sp->GetRunLock())) { Mutex::Locker api_locker (process_sp->GetTarget().GetAPIMutex()); bytes_read = process_sp->ReadMemory (addr, dst, dst_len, sb_error.ref()); } else { if (log) log->Printf ("SBProcess(%p)::ReadMemory() => error: process is running", static_cast<void*>(process_sp.get())); sb_error.SetErrorString("process is running"); } At the moment, I don't know why but would be happy to hear your thoughts. Thanks, Mike. On Thu, Sep 25, 2014 at 1:47 PM, Greg Clayton <gclay...@apple.com> wrote: > It should be easy for you to step through the SBProcess::ReadMemory() call > and see what is going wrong. If the process is stopped, it should definitely > be returning memory. You are sure you don't have thread race conditions where > some other thread is resuming the process? > > >> On Sep 25, 2014, at 10:34 AM, Mikhail Sosonkin <m...@nanotick.net> wrote: >> >> Hello, >> >> I'm trying to read some memory from a stopped process. However, the >> read function errors out with "process is running" message even though >> SBProcess::GetState tells me that the process is stopped. The process >> was stopped because it hit a breakpoint. >> >> SBProcess(0x7fed13981600)::GetState () => stopped >> SBProcess(0x7fed13981600)::GetState () => stopped >> SBProcess(0x7fed13981600)::ReadMemory (addr=0x7fff5fc34000, >> dst=0x112eff900, dst_len=4096, SBError (0x0))... >> SBProcess(0x7fed13981600)::ReadMemory() => error: process is running >> SBProcess(0x7fed13981600)::ReadMemory (addr=0x7fff5fc34000, >> dst=0x112eff900, dst_len=4096, SBError (0x7fed12621ee0): error: >> process is running) => 0 >> >> I have two questions: >> - Is this a bug/known issue? I'm using lldb library that comes with >> Xcode 5 version lldb-310.2.37 (though I read somewhere that these >> version numbers don't help you much). >> >> - Is there a mechanism to read memory of a running process? >> >> Thanks, >> Mike. >> _______________________________________________ >> lldb-dev mailing list >> lldb-dev@cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev > _______________________________________________ lldb-dev mailing list lldb-dev@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev