This is an archive of the discontinued LLVM Phabricator instance.

Remember whether all owners of the site we hit were internal in StopInfoBreakpoint
ClosedPublic

Authored by jingham on Jun 16 2022, 11:33 AM.

Details

Summary

We noticed several test suite failures (e.g. TestStopAtEntry.py) with the new MacOS dyld support that was recently added when run on the macOS Ventura beta. The reason was that he was an unexpected breakpoint stop event coming from the new three-step dance needed to follow dyld's loading into the process. At the first two stops, we delete the instrumentation breakpoint we just hit in the callback, and add another. Since these were internal breakpoints the ThreadPlanBase::ShouldNotify should have returned eVoteNo. But that logic requires knowing that all the owners of the breakpoint site were internal, and by the time we got to asking the thread plan the breakpoint site had been removed, so we no longer knew that.

The only time you know no one could have deleted the site you hit is when you make the StopInfoBreakpoint for the stop. So this change adds an ivar to record whether all the breakpoints at this site were internal at that point, and uses that in the "ShouldNotify" calculation.

Diff Detail

Event Timeline

jingham created this revision.Jun 16 2022, 11:33 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 16 2022, 11:33 AM
jingham requested review of this revision.Jun 16 2022, 11:33 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 16 2022, 11:33 AM
This revision is now accepted and ready to land.Jun 16 2022, 11:37 AM

Thanks for getting to the bottom of this one!