diff options
| -rw-r--r-- | lldb/source/API/SBValue.cpp | 61 |
1 files changed, 2 insertions, 59 deletions
diff --git a/lldb/source/API/SBValue.cpp b/lldb/source/API/SBValue.cpp index b07d3018272..543c7947755 100644 --- a/lldb/source/API/SBValue.cpp +++ b/lldb/source/API/SBValue.cpp @@ -1724,65 +1724,8 @@ SBValue::Watch (bool resolve_location, bool read, bool write, SBError &error) lldb::SBWatchpoint SBValue::Watch (bool resolve_location, bool read, bool write) { - SBWatchpoint sb_watchpoint; - - // If the SBValue is not valid, there's no point in even trying to watch it. - lldb::ValueObjectSP value_sp(GetSP()); - TargetSP target_sp (GetTarget().GetSP()); - if (value_sp && target_sp) - { - // Can't watch this if the process is running - ProcessSP process_sp(value_sp->GetProcessSP()); - Process::StopLocker stop_locker; - if (process_sp && !stop_locker.TryLock(&process_sp->GetRunLock())) - { - LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); - if (log) - log->Printf ("SBValue(%p)::Watch() => error: process is running", value_sp.get()); - return sb_watchpoint; - } - - // Read and Write cannot both be false. - if (!read && !write) - return sb_watchpoint; - - // If the value is not in scope, don't try and watch and invalid value - if (!IsInScope()) - return sb_watchpoint; - - addr_t addr = GetLoadAddress(); - if (addr == LLDB_INVALID_ADDRESS) - return sb_watchpoint; - size_t byte_size = GetByteSize(); - if (byte_size == 0) - return sb_watchpoint; - - uint32_t watch_type = 0; - if (read) - watch_type |= LLDB_WATCH_TYPE_READ; - if (write) - watch_type |= LLDB_WATCH_TYPE_WRITE; - - Error rc; - WatchpointSP watchpoint_sp = target_sp->CreateWatchpoint(addr, byte_size, watch_type, rc); - - if (watchpoint_sp) - { - sb_watchpoint.SetSP (watchpoint_sp); - Declaration decl; - if (value_sp->GetDeclaration (decl)) - { - if (decl.GetFile()) - { - StreamString ss; - // True to show fullpath for declaration file. - decl.DumpStopContext(&ss, true); - watchpoint_sp->SetDeclInfo(ss.GetString()); - } - } - } - } - return sb_watchpoint; + SBError error; + return Watch(resolve_location, read, write, error); } lldb::SBWatchpoint |

