【发布时间】:2018-06-30 14:25:45
【问题描述】:
我正在编写一个调试器,目前正在尝试使断点在多个线程同时命中它们时可靠地工作。据我所知,大多数调试器通过将指令的第一个字节替换为 0xCC 来实现断点,这也是我目前的做法。但是,我看不到任何恢复原始字节的方法,同时仍然能够停止即将到达该断点的其他线程,而不会停止所有正在运行的线程。有没有人有任何关于通常如何实现的信息?停止所有线程真的是唯一的解决方案吗?
【问题讨论】:
-
据我所知,调试器会停止所有线程。
-
通常有有限数量的“硬件断点”不受相同限制,但不足以将它们用于所有个断点
标签: c++ debugging x86-64 breakpoints machine-code