Windows 上什么是“异步”信号?

0 windows asynchronous signals exception seh

我正在此处阅读对 pintool 邮件列表中问题的答复。它提到异步信号的传递被延迟到 pintool 中的分析例程结束。我很好奇 Windows 中哪些异常符合异步信号的条件。

MSa*_*ers 5

基本上什么都没有。但那是因为你引用了错误的单词。Windows 没有“信号”。

让我澄清一下。你指的是Linux,它像UNIX 一样有一个signal机制。这是真正的操作系统级功能。奇怪的是,这个操作系统功能进入了 C 语言(与目录等更有用的东西不同)。Windows 不提供 UNIX 信号,因此 Windows 的 C 编译器必须伪造它们。

Windows 确实有异常,特别是结构化异常。这些的处理方式完全不同。例如,它们通常由基于堆栈的异常处理程序处理 - 这对于“异步信号”来说甚至没有意义。在 Linux 上,信号处理程序往往保持不变,在 Windows 上,异常处理程序可能在每次函数调用时发生变化。延迟异常可能会将其传递给完全错误的处理程序。