gpt4 book ai didi

c++ - 在 Visual Studio 2005 中的取消引用指针的地址上设置数据断点

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:14:03 25 4
gpt4 key购买 nike

我想知道是否有办法执行以下操作:我有一个结构包含一个成员,当我将结构传递给 API 函数时,该成员是指向内核分配的内存块的指针(该结构是一个 WAVEHDR,成员是保留字段。)

我可以在保留成员的值上设置一个数据断点——这本身并不是很有帮助。当遇到断点时,我想做的是取消引用存储在 reserved 中的指针,并在该指针指向的内存上设置一个新的数据断点。当该内存设置为已知值时,我希望 VisualStudio 中断。

我知道如何从宏设置断点,以及如何让 Visual Studio 在遇到断点时从断点调用该宏,但我不知道是否可以将指针值传递给宏,以便它可以在正确的地址上设置断点。 UI 不提供执行此操作的方法。

有没有办法让宏访问有关正在运行的程序的信息,并执行诸如评估全局变量或其他表达式之类的事情?如果我可以从宏中以编程方式访问正在运行的代码(在断点期间),我就可以完成我想做的事情。

最佳答案

宏可以评估您在监 window 口中可以评估的任何内容:

    Dim e As EnvDTE.Expression

e = DTE.Debugger.GetExpression("<my expression>", True)

If e.IsValidValue Then
... use e.Value to do something
End If

您在 e.Value 中返回的值正是您在监 window 口中看到的字符串,因此您可能需要将其拆开。您还可以使用 Expression 对象上的许多其他属性。查看MSDN documentation .

关于c++ - 在 Visual Studio 2005 中的取消引用指针的地址上设置数据断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com