在命名函数上放置断点

Posted

技术标签:

【中文标题】在命名函数上放置断点【英文标题】:Put breakpoint on named function 【发布时间】:2010-10-19 12:20:15 【问题描述】:

有没有办法在 Visual Studio 中的任何函数上放置断点,有点像 WinDbg 中的bm kernel32!LoadLib*

我知道一种方法是在应用程序启动时中断,找到所需的 DLL 加载地址,然后将偏移量添加到您可以通过 Depends 获得的所需函数,并在地址上创建一个断点。但这真的很慢,而且切换到 WinDbg 再回来也很烦人。

也许有更好的方法?

【问题讨论】:

【参考方案1】:

转到“调试/新断点/在函数处中断...”并粘贴函数名称。

对于 API,这可能很棘手,因为调试器看到的函数名称与其真实名称不同。 示例:

,,kernel32.dll_CreateProcessW@40
,,user32.dll_NtUserLockWindowUpdate@4

查看此博文以找到正确的名称:Setting a Visual Studio breakpoint on a Win32 API function in user32.dll

【讨论】:

API 函数正是我所需要的,谢谢!我只希望有一种更简单的方法可以找到装饰名称... 这在 VS2017 中似乎不再起作用——它只会吐出“找不到函数:_CreateProcessW@40”。我还没有找到解决方法。编辑:解决方法是输入全部大写的模块名称。去图吧。

以上是关于在命名函数上放置断点的主要内容,如果未能解决你的问题,请参考以下文章

python 函数

python函数及模块

函数(命名空间和作用域)

函数补充知识

函数命名空间

在c ++中没有断点的中断进程