Visual studio 2010 如何基于函数';插入Win32 API函数;s参数?

Visual studio 2010 如何基于函数';插入Win32 API函数;s参数?,visual-studio-2010,winapi,debugging,Visual Studio 2010,Winapi,Debugging,我正在用VS2010调试一个混合的.Net/本机应用程序,并试图确定是否/何时释放特定的BSTR。基于这个问题:我已经知道了如何在SysFreeString中设置断点,但是它经常被调用。我想设置一个条件,使其仅在我感兴趣的特定字符串被释放时才中断 看起来字符串的地址被推到了堆栈上,但我不知道如何取消对堆栈寄存器的引用以确定它是否是我的字符串。我尝试将类似于[esp]==0x001ADCAC(其中0x001ADCAC是我感兴趣的字符串的地址)的内容放在断点条件中,但没有成功。找到了答案!我将以下内

我正在用VS2010调试一个混合的.Net/本机应用程序,并试图确定是否/何时释放特定的BSTR。基于这个问题:我已经知道了如何在SysFreeString中设置断点,但是它经常被调用。我想设置一个条件,使其仅在我感兴趣的特定字符串被释放时才中断


看起来字符串的地址被推到了堆栈上,但我不知道如何取消对堆栈寄存器的引用以确定它是否是我的字符串。我尝试将类似于
[esp]==0x001ADCAC
(其中0x001ADCAC是我感兴趣的字符串的地址)的内容放在断点条件中,但没有成功。

找到了答案!我将以下内容放入断点的条件中:

DW esp+4 == 0x001ADCAC
它成功了。DW是调试器的等价物“dword ptr”。此处列出了所有“汇编语言表达式”:

这也会起作用:

*(unsigned long*)(esp+4) == 0x001ADCAC