Windows 陷阱标志、调试器和杂项

Windows 陷阱标志、调试器和杂项,windows,debugging,Windows,Debugging,这是我在堆栈溢出中的第一个问题,因为到目前为止,我一直设法找到我的答案 所以。。我正在编写一个debbuger(对于Windows,使用python,使用WinAppDbg库),它应该跟踪程序的执行,但遇到了一些问题 我正在设置陷阱标志,这样我可以停止每一步。 第一个问题-有时执行流通过Windows api,然后进入内核。当它返回时,trap标志显然是关闭的,线程的执行可能会继续执行数百万条指令,而我的debbuger不会跟踪它的每一步 解决方案的可能性-在调用Windows api之前,我将

这是我在堆栈溢出中的第一个问题,因为到目前为止,我一直设法找到我的答案

所以。。我正在编写一个debbuger(对于Windows,使用python,使用WinAppDbg库),它应该跟踪程序的执行,但遇到了一些问题

我正在设置陷阱标志,这样我可以停止每一步。 第一个问题-有时执行流通过Windows api,然后进入内核。当它返回时,trap标志显然是关闭的,线程的执行可能会继续执行数百万条指令,而我的debbuger不会跟踪它的每一步

解决方案的可能性-在调用Windows api之前,我将next addresses权限设置为guard page,因此当调用返回时,我会得到一个guard page异常,再次设置陷阱标志,并继续跟踪。但这会导致另一个问题(我称之为“第二个问题”)

第二个问题——因为我正在设置主线程的陷阱标志,所以我看到的只是该线程的一个循环(我猜是Windows gui循环),程序执行没有进展(例如,应该创建新线程,但我没有看到它们)

那我在找什么呢? 调试器的源代码,可以处理我描述的问题。 或者更好的办法,解决我的问题。我做错了什么

谢谢大家!