Upstream a small change from Greg Clayton for the REPL support:

"Modify internal breakpoints so they resolve just like external
breakpoints do. This allow you to set symbol and file + line internal
breakpoints and have them get updated correctly."

<rdar://problem/16931767>

llvm-svn: 252584
This commit is contained in:
Jason Molenda 2015-11-10 04:18:12 +00:00
parent dad8af4cf6
commit d91c3fdfb8
1 changed files with 6 additions and 0 deletions

View File

@ -1371,7 +1371,10 @@ Target::ModuleUpdated (const ModuleList& module_list, const ModuleSP &old_module
{ {
// A module is replacing an already added module // A module is replacing an already added module
if (m_valid) if (m_valid)
{
m_breakpoint_list.UpdateBreakpointsWhenModuleIsReplaced(old_module_sp, new_module_sp); m_breakpoint_list.UpdateBreakpointsWhenModuleIsReplaced(old_module_sp, new_module_sp);
m_internal_breakpoint_list.UpdateBreakpointsWhenModuleIsReplaced(old_module_sp, new_module_sp);
}
} }
void void
@ -1380,6 +1383,7 @@ Target::ModulesDidLoad (ModuleList &module_list)
if (m_valid && module_list.GetSize()) if (m_valid && module_list.GetSize())
{ {
m_breakpoint_list.UpdateBreakpoints (module_list, true, false); m_breakpoint_list.UpdateBreakpoints (module_list, true, false);
m_internal_breakpoint_list.UpdateBreakpoints (module_list, true, false);
if (m_process_sp) if (m_process_sp)
{ {
m_process_sp->ModulesDidLoad (module_list); m_process_sp->ModulesDidLoad (module_list);
@ -1404,6 +1408,7 @@ Target::SymbolsDidLoad (ModuleList &module_list)
} }
m_breakpoint_list.UpdateBreakpoints (module_list, true, false); m_breakpoint_list.UpdateBreakpoints (module_list, true, false);
m_internal_breakpoint_list.UpdateBreakpoints (module_list, true, false);
BroadcastEvent (eBroadcastBitSymbolsLoaded, new TargetEventData (this->shared_from_this(), module_list)); BroadcastEvent (eBroadcastBitSymbolsLoaded, new TargetEventData (this->shared_from_this(), module_list));
} }
} }
@ -1415,6 +1420,7 @@ Target::ModulesDidUnload (ModuleList &module_list, bool delete_locations)
{ {
UnloadModuleSections (module_list); UnloadModuleSections (module_list);
m_breakpoint_list.UpdateBreakpoints (module_list, false, delete_locations); m_breakpoint_list.UpdateBreakpoints (module_list, false, delete_locations);
m_internal_breakpoint_list.UpdateBreakpoints (module_list, false, delete_locations);
BroadcastEvent (eBroadcastBitModulesUnloaded, new TargetEventData (this->shared_from_this(), module_list)); BroadcastEvent (eBroadcastBitModulesUnloaded, new TargetEventData (this->shared_from_this(), module_list));
} }
} }