[LLDB][MIPS] fix watchpoint searched on client side for same masked variables

Reviewers: clayborg.
Subscribers: jaydeep, bhushan, sagar, nitesh.jain,lldb-commits.
Differential Revision: http://reviews.llvm.org/D15106

llvm-svn: 254522
This commit is contained in:
Mohit K. Bhakkad 2015-12-02 17:45:02 +00:00
parent 4af1b7b693
commit 6846bc8de2
2 changed files with 11 additions and 4 deletions

View File

@ -212,7 +212,11 @@ public:
kCore_mips64_last = eCore_mips64r6, kCore_mips64_last = eCore_mips64r6,
kCore_mips64el_first = eCore_mips64el, kCore_mips64el_first = eCore_mips64el,
kCore_mips64el_last = eCore_mips64r6el kCore_mips64el_last = eCore_mips64r6el,
kCore_mips_first = eCore_mips32,
kCore_mips_last = eCore_mips64r6el
}; };
typedef void (* StopInfoOverrideCallbackType)(lldb_private::Thread &thread); typedef void (* StopInfoOverrideCallbackType)(lldb_private::Thread &thread);

View File

@ -2081,9 +2081,12 @@ ProcessGDBRemote::SetThreadStopInfo (lldb::tid_t tid,
watch_id_t watch_id = LLDB_INVALID_WATCH_ID; watch_id_t watch_id = LLDB_INVALID_WATCH_ID;
if (wp_addr != LLDB_INVALID_ADDRESS) if (wp_addr != LLDB_INVALID_ADDRESS)
{ {
if (wp_hit_addr != LLDB_INVALID_ADDRESS) WatchpointSP wp_sp;
wp_addr = wp_hit_addr; ArchSpec::Core core = GetTarget().GetArchitecture().GetCore();
WatchpointSP wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_addr); if (core >= ArchSpec::kCore_mips_first && core <= ArchSpec::kCore_mips_last)
wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_hit_addr);
if (!wp_sp)
wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_addr);
if (wp_sp) if (wp_sp)
{ {
wp_sp->SetHardwareIndex(wp_index); wp_sp->SetHardwareIndex(wp_index);