在 Visual Studio 调试器中打破按钮单击事件

Posted

技术标签:

【中文标题】在 Visual Studio 调试器中打破按钮单击事件【英文标题】:Breaking on a button click event in Visual Studio debugger 【发布时间】:2010-06-30 02:06:35 【问题描述】:

这个问题与 Visual Studio 2008 中的调试器有关。我正在开发一个具有庞大代码库(数千个 .cpp 文件)的 C++/MFC 应用程序。我正在寻找一种方法来告诉调试器,“下次我单击应用程序中的按钮时,请在该按钮调用的函数处停止”。我试图避免在数千个文件中寻找按钮的功能或资源。我认为用调试器捕获按钮单击事件会很简单......但我没有看到任何明显的东西。

谢谢!

菲利普

【问题讨论】:

您是否尝试过类似于我在这里提出的问题? ***.com/questions/47912623/… 【参考方案1】:

大多数 MFC 按钮都会触发 WM_COMMAND 消息。

如果按钮的父窗口是基于 CWnd 的,并且您有 MFC 源代码,则可以打开 cmdtarg.cpp 并在 _AfxDispatchCmdMsg 中设置断点。如果您进入开关盒,您应该能够进入按钮的处理程序代码。

因为这是 WM_COMMAND 的陷阱,所以它可能会捕获的不仅仅是按钮,例如菜单,因此它不是万无一失的。

【讨论】:

以上是关于在 Visual Studio 调试器中打破按钮单击事件的主要内容,如果未能解决你的问题,请参考以下文章

如何安装“Visual Studio的单声道调试”?

使用单 GPU 和 Visual Studio 进行 Cuda 调试

“运行|调试”按钮未出现在 Visual Studio Code Java 程序上

在 Visual Studio 中按下“停止调试”按钮时拦截信号/事件

[译]如何在visual studio中调试Javascript

Visual Studio 2008调试:当我点击播放按钮时,它会快速闪烁