site_archiver@lists.apple.com Delivered-To: darwin-dev@lists.apple.com Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:from:date :message-id:subject:to:content-type; bh=rJHMoGM+6flHCNPR2iGFBQ91jmXm9CgNCUUKi0Get5g=; b=hVwCg6SB6kthCiogKRsq3qFcVUDdPKRjXsnyqHvpW1TNJOJUDR6DpV41hHOtwwjKXU +keEoCoGjbKHx+j13tRaxwlz+ZErznmujvRZUrtovXz7eS09Uc2N899nDUqB2JzVtkHU FHwy+88Gienvg/UhQ4H1PCVTJcracLaxYqkvs= Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type; b=qWwpSdXE2MsumAa4BYFNatKNwN458Gvu9lg7WxpfQ6KNvk7UG9FX2dMIb2tTtSLMXb XO2oap9lWBrc6wkf73C+/ZMEekmQ4gHuBKwo+D0BhMrr3dlrTmDnBmgTGXYEoKRqMD7E bbFGCymeS1q+bAKnPmCAw7Fl7N6+qBymcnsBM= Hey list, I'm implementing breakpoint functionality in a hobby i386 debugger using the INT3 instruction. Let's say Thread 1 hits Breakpoint A: 1. Suspend every thread 2. Restore original instruction that was replaced by INT3 3. In Thread 1, EIP--, let Thread 1 single-step (using EFL_TF flag) 4. Revert instruction back to INT3 5. Resume every thread This technique appears to work as expected, but let's say: 1. Breakpoint A is at the very 'syscall' instruction within pthread_create() that causes Thread B to spawn 2. Thread B will hit Breakpoint A Due to the race between Thread B executing and step #4 completing, couldn't Thread B bypass Breakpoint A? Is there a way to fix this? Thanks very much! David _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-dev mailing list (Darwin-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-dev/site_archiver%40lists.appl... This email sent to site_archiver@lists.apple.com