如何找到WinRT异步方法调用中出现错误的位置?

时间:2014-09-23 21:21:14

标签: c++ debugging assembly windows-runtime ida

我正在调试失败的WinRT异步方法调用。我怎样才能找到问题所在?我认为这可以通过跟踪首次报告错误的位置来完成。有线索吗?我正在使用IDA Pro& VS 2013。

经过深度调试后,我认为我发现了错误的地方 - 通过ntdll“NtGetCompleteWnfStateSubscription”无法解锁的功能(您可以查看链接的问题以获取有关它的更多详细信息)。但我不能寻求什么功能设置它。此外,我无法调试“NtGetCompleteWnfStateSubscription”函数本身,因为它是内核函数。

这是一个更通用的问题。它起源于此one

1 个答案:

答案 0 :(得分:0)

我通常做的是使用create_task().then() lambda - 在task.get()块中调用try-catch在任务中包装异步调用。这让我有例外。