- When an image creation notification is received, the thread
  that provoked it needs to be suspended until the debugger has
  finished loading the image's debug information. Otherwise, if that
  image had a breakpoint in it, it was possible that the thread would
  execute past the code where the breakpoint should be before the
  debugger had a chance to actually install it.

- Only update breakpoints when debug info loading has actually finished.
This commit is contained in:
Rene Gollent
2012-11-29 08:12:49 -05:00
parent 678934b3ea
commit 4e9b38d34e
2 changed files with 107 additions and 3 deletions
@@ -103,7 +103,12 @@ private:
private:
struct ImageHandler;
struct ImageHandlerHashDefinition;
struct ImageInfoPendingThread;
struct ImageInfoPendingThreadHashDefinition;
typedef BOpenHashTable<ImageHandlerHashDefinition> ImageHandlerTable;
typedef BOpenHashTable<ImageInfoPendingThreadHashDefinition>
ImageInfoPendingThreadTable;
private:
static status_t _DebugEventListenerEntry(void* data);
@@ -166,6 +171,7 @@ private:
ThreadHandlerTable fThreadHandlers;
// protected by the team lock
ImageHandlerTable* fImageHandlers;
ImageInfoPendingThreadTable* fImageInfoPendingThreads;
DebuggerInterface* fDebuggerInterface;
TeamDebugInfo* fTeamDebugInfo;
FileManager* fFileManager;